Commit graph

304 commits

Author SHA1 Message Date
OxygenCobalt
36228d0536
widgets: improve widgets
Enhance widgets in a couple of ways:
1. Make the cover art expand to fit it's aspect ratio with padding
instead of the entire widget. This does the cover art justice and
is more visually appealing in general.
2. Add two new widget forms: Terminal, which applies to only the
smallest widgets, and Minimal, which applies to short and wide
widgets
2021-10-21 19:17:55 -06:00
OxygenCobalt
9030de7774
ui: add edge-to-edge on bar-dependent fragments
Add edge-to-edge on the Home, Detail, and Search fragments. This
solution is not ideal at all, relying on viewModel state to make
sure that the padding is only applied when the playback bar is not
present. However, it works. I'll likely replace it with a better
layout once I can figure out how similar layouts like Material
Files' PersistentBarLyout work.
2021-10-20 20:11:07 -06:00
OxygenCobalt
e01816a1dc
settings: make tab dialog use checkboxes
Make the tab selection dialog use checkboxes instead of icons to make
it more user-friendly.
2021-10-20 19:37:20 -06:00
OxygenCobalt
23d1be8ebc
home: add tab customization
Finally add tab customization. This implementation is a
bit ugly, but I had to futureproof it for playlists and I'm
planning to clean up a lot of the duplicate code across the app.

This addition notably allows a default tab to be set, which is
something that was widely requested in #12. This UI rework finally
allows it to be added.
2021-10-17 20:27:16 -06:00
OxygenCobalt
7ef10fa4f8
search: collapse uis into single bar
Merge the search view and the redundant appbar into a single view. Also
fix another Material3 regression that stemmed from a bad text highlight
color.
2021-10-12 18:29:54 -06:00
OxygenCobalt
2d5c438c58
playback: improve queue ui
Improve the queue UI some more:
- Fixed an issue where clearing the user queue by clearing all items would
result in it bugging out
- Queue items now show a Material-y background when they are swiped
away. This was way harder than you might think it was.
2021-10-11 20:32:23 -06:00
OxygenCobalt
e123999e4d
drawable: update icon
Update the app icon to reflect the new accents. Also move around some
things to make it easier to add dynamic colors later on. Don't make it
follow dynamic colors right now however, as I want to make sure it
lines up with the dynamic pixel icons before I make that change.
2021-10-11 18:54:26 -06:00
OxygenCobalt
8c7f0867f9
style: migrate to Material3
Mostly migrate to Material 3/Material You.

- Auxio should now follow dynamic colors on Android 12
- Accents have been regenerated to align with the new color roles
- Some colors have been tweaked here and there to line up with the
new design system
- Dialogs were not fully migrated, but that's because Material3 dialogs
look god-awful.
- Accent class was reworked to take up less memory

Now that this is out of the way, I can focus on other UI things before
the release of 2.0.0.
2021-10-10 16:44:17 -06:00
OxygenCobalt
5ebe17d0ad
playback: make dedicated seekbar view
Make a dedicated seekbar view so that does the layout magic necessary
to have an adequate touch target while not taking up too much space.
Isolating this makes handling the playback layout's view much easier.
2021-10-05 19:32:35 -06:00
OxygenCobalt
d0835c3a0c
detail: fix genre sort issue
Fix a problem where GenreDetailFragment would apply ASCENDING when
ARTIST was selected in the sort menu. Turns out it was a bad constant
match.
2021-10-03 18:39:49 -06:00
OxygenCobalt
7e32763662
ui: misc ui updates
Do a couple of UI changes I thought of over this week:
- Make the detail header text neutral, mostly so I can make it so that
the accent only corresponds to active thingsd
- Remove the vanity elevation from the cover images. This is mostly to
abide by Material Design.
- Move the about screen to it's own menu slot on the main fragment.
2021-10-01 20:17:48 -06:00
OxygenCobalt
5c3db12f10
all: minor tweaks
Make some minor changes to recently added parts of the app.
2021-09-27 07:01:56 -06:00
OxygenCobalt
b3156941d4
home: add play/shuffle to song list
Re-add the play/shuffle options to the song list, now as a header. This
seems to be the best option UX-wise, but the implementation is really
I think the best option regarding that is to extend this idiom to all
lists or split these fragments up. Both are reasonable.
2021-09-26 19:48:44 -06:00
OxygenCobalt
a820724ff2
ui: increase seekbar height
Make the seekbar more touchable by increasing it's height. This should
have no measurable impact since I did some layout black magic and made
the rest of the layout slightly inset into the SeekBar's bounds. This
is not a nice solution. Hopefully I'll be able to make a dedicated view
with a Seeker with the same insetting things later on.
2021-09-24 20:39:10 -06:00
OxygenCobalt
68b8ff0798
ui: become more material
Give up and add more material elements such as neutral toolbar colors
and rounded corners. This is largely for stylistic cohesion. I will
keep rounded corners to a minimum though, rounding album covers is a
crime against humanitity.
2021-09-24 19:46:42 -06:00
OxygenCobalt
b2ebd92d2a
ui: fix ellipsizing of certain textviews
Fix a problem where ellipsizing wouldn't work on the new TextView
styles.
2021-09-21 06:41:35 -06:00
OxygenCobalt
443c26fe98
styles: refactor style methodology
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.
2021-09-14 20:16:55 -06:00
OxygenCobalt
744e4172f3
ui: improve misc ui elements
Make some minor UI tweaks across the app.
2021-09-11 20:54:36 -06:00
OxygenCobalt
0e0be19e1d
detail: refactor module
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.
2021-09-11 17:40:19 -06:00
OxygenCobalt
00b7e0cac3
ui: further apply elevation overlays
Apply elevation overlays to CompactPlaybackFragment and dragged queue
items. This makes elevation more noticable on dark mode.
2021-09-05 20:22:40 -06:00
OxygenCobalt
dae334b1d6
home: re-add sorting
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.
2021-09-05 16:11:37 -06:00
OxygenCobalt
0fc8f1cd02
ui: clean up colors
Further clean up coloring, adding new selectors to cut down on resource
duplication and to simplify logic in general.
2021-09-04 22:46:11 -06:00
OxygenCobalt
34367b3bae
ui: fix material issues
Migrate dividers over to material theming alongside making detail items
use a colorStateList instead of manually indexing for text colors.
2021-09-04 19:31:28 -06:00
OxygenCobalt
23e3c0241d
ui: completely migrate to material
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.
2021-09-03 20:37:32 -06:00
OxygenCobalt
74d55ba59e
home: make appbar liftOnScroll
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.
2021-09-03 18:02:57 -06:00
OxygenCobalt
624eb57e7a
ui: fix divider color
Divider colors were accidentally messed up when the dark theme was
revamped, fix that.
2021-09-02 06:49:20 -06:00
OxygenCobalt
2a695a4977
ui: brighten dark theme
Brighten the dark theme somewhat. This is for two reasons:
- To make colorOnSurface stick out less like a sore thumb
- To be more in line with other material apps
- To make the dark theme differ from the black theme more

Black theme remains unchanged, so if one wants a much darker theme,
then they can use that.
2021-09-01 18:48:02 -06:00
OxygenCobalt
acabe9217b
ui: use colorOnSurface
Use colorOnSurface for the first time ever. I decided to pick a color
that was as non-intrusive as possible that was still differentiateable,
and I think it looks like a net improvement. It will probably be
tweaked a bit in the future as I expand it to other elevated views.
2021-08-30 20:19:52 -06:00
OxygenCobalt
765f92ca98
ui: improve playback/about UIs
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.
2021-08-30 19:53:19 -06:00
OxygenCobalt
1251af660a
ui: fix liftOnScroll issues entirely
Make a hack layout that fixes the problem of the lift state not
actually following the RecyclerView state. This should remove the
need for all the fragile fixes for this UI idiom.
2021-08-30 06:43:18 -06:00
OxygenCobalt
a4d2a8d48c
search: improve ui
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.
2021-08-29 20:20:25 -06:00
OxygenCobalt
e142c17fca
home: make edge-to-edge
Make the home fragment span from edge-to-edge. This also adds a nice
effect for the toolbar to fade out when it collapses.
2021-08-29 18:29:58 -06:00
OxygenCobalt
c5b1d7d735
ui: refactor edge-to-edge
Merge all edge-to-edge functions into two methods for applying insets.
This generally simplifies code.
2021-08-29 16:20:45 -06:00
OxygenCobalt
1b67f6f846
settings: improve UI
Make settings follow both edge-to-edge and the liftOnScroll idioms.
This has some minor issues with state, but these should be fixed when
I'm able to make a smooth transition for theme changes.
2021-08-28 18:12:14 -06:00
OxygenCobalt
34ac629659
strings: use bullets instead of slashes
Use bullets instead of slashes when seperating names. This is mostly
for accessibility, as screen readers will handle bullets better than
slashes.
2021-08-28 17:24:06 -06:00
OxygenCobalt
37a8cdccb6
playback: fix more queue issues
Fix more issues with the queue, such as landscape edge-to-edge not
working correctly and drag scroll events not resulting in the appbar
lifting.
2021-08-25 18:15:09 -06:00
OxygenCobalt
9ce7dc598d
playback: improve queue ui
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.
2021-08-24 20:04:32 -06:00
OxygenCobalt
9162246b8b
home: fix appbar issues
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 [???]
2021-08-23 19:40:21 -06:00
OxygenCobalt
5fe01777d0
all: refactor utils
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.
2021-08-23 17:05:42 -06:00
OxygenCobalt
19e2fcbb90
search: improve keyboard management
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.
2021-08-22 17:59:07 -06:00
OxygenCobalt
27764046f7
home: make elevation static
Turns out getting liftOnScroll to play along with a ViewPager is
pretty much impossible. For the sake of my sanity, make the
elevation static.
2021-08-22 13:19:45 -06:00
OxygenCobalt
b5c5fabad0
home: re-add grid spans
Re-add grid spans to HomeFragment when on landscape mode.
2021-08-22 09:01:30 -06:00
OxygenCobalt
a3e7cb93aa
home: merge all library views into home
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.
2021-08-21 19:49:25 -06:00
OxygenCobalt
c9e84d0d39
playback: unify compact views
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.
2021-08-21 13:27:39 -06:00
OxygenCobalt
f06ca142f6
style: fix accessibility issues
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.
2021-08-21 12:09:17 -06:00
OxygenCobalt
4c59c37111
style: use material play/pause icons
The old play/pause icons that I used to use were really bad and didn't
work right on many display densities. Give up and just use the material
ones.
2021-08-21 09:52:39 -06:00
OxygenCobalt
0c54fa05b9
accent: fix crash when opening dialog
Fix a crash in the accent dialog that would occur because Android
Couldn't decipher the module path to the layout manager. Even though
this worked perfectly fine before moving the module. Why.
2021-08-21 08:43:22 -06:00
OxygenCobalt
21a24f2496
style: improve layout heirarchy
Further improve the layout heirarchy, shrinking some items so that
the layout is more compact and scrollable.
2021-08-19 17:40:16 -06:00
OxygenCobalt
1f9d23863f
widgets: remove compact/mini widgets
Remove the compact and mini widgets, as there seems to be no real way
for both controls and metadata to be packed into them.
2021-08-17 19:48:00 -06:00
OxygenCobalt
73ec99a214
ui: refactor utilities
Move the AndroidUtils file into the root Auxio directory, renaming it
to AuxioUtils as well. This also changes some methods to be extension
methods instead of argument functions.
2021-08-16 20:25:20 -06:00