Commit graph

732 commits

Author SHA1 Message Date
OxygenCobalt
304fccf0f9
home: disable collapse when one tab
Disable the collapsing toolbar when there is only one tab.

The TabLayout is hidden when there is one tab, so collapsing it does
not make much sense.
2022-08-03 10:30:19 -06:00
OxygenCobalt
de3cc7958f
ui: rework bottom sheet state management
Try to make the bottom sheet states more coherent, especially regarding
when playback ends.
2022-08-02 11:13:12 -06:00
OxygenCobalt
35cfea78df
recycler: remove useless header ids
Remove useless id fields from Headers, replacing them with vlaues
related to their string resource.

String resources and disc numbers are more or less garunteed to be
unique in Auxio's context.
2022-08-01 10:38:24 -06:00
OxygenCobalt
257516643f
queue: indicate playing item in list
Indicate the currently playing item in the queue list.

The item is still disabled, however it's also simultaniously activated
now, which allows it to indicate that it is playing.
2022-07-31 17:21:10 -06:00
OxygenCobalt
f5542c65ba
queue: rework previous items
Rework previous items to be based off of adapter state.

This improves the transitions between active and previous items and
their overall efficiency.
2022-07-31 16:50:47 -06:00
OxygenCobalt
b42dfd0b53
all: misc changes
Miscellanious changes that accumulated over time.
2022-07-31 15:51:12 -06:00
OxygenCobalt
170cdf80ef
widgets: fix insanity
Fix two issues where Auxio's widget could not be resized to a single
cell, and another where covers would not load into the widget.

The first is caused by a random, subtle change that completely changed
up the minHeight size calculation regarding widgets. Thus, we need to
lower it for android to recognize it still as 1 cell. I cannot believe
we can't just specify the specific minimum grid size that our widget
takes up, like you know, iOS did, nearly a decade after widgets were
first added in Android.

The second is an absurd race condition stemming from me hitting the
RemoteViews memory limit. Turns out my cover bitmaps were simply too
big. Getting them below the limit requires me to resize them to a puny
~500 pixels. Why can't we just render our own views into our widget?
You know, like iOS did, nearly a decade after widgets were first added
to Android.

Nah, screw modernizing the broken widget API. Let's just vaguely copy
iOS widgets because we have to while not fixing a single issue plaguing
widget development on this OS. That way some google engineer can get
promoted faster.
2022-07-30 20:41:24 -06:00
OxygenCobalt
7467d89a45
ui: misc bottom sheet changes
Tweak parts of the bottom sheet system for UI consistency.
2022-07-30 09:15:38 -06:00
OxygenCobalt
a4fa8a84fa
queue: reimplement with bottom sheet
Re-implement the queue, now leveraging a bottom sheet too.

This makes the queue much easier to open, and actually plays along with
the new transition system. I really hope this doesn't have a stupid
gotcha that ruins the UX. Please. Please. Please.
2022-07-29 14:40:58 -06:00
OxygenCobalt
cc3cb343b0
playback: use bottomsheetbehavior
Use BottomSheetBehavior with the playback sheet.

This is the result of two weeks of painful hacking to get a working
implementation that did not immediately have a brain aneursym. It
also requires me to still vendor BottomSheetBehavior for the time
being. However, this greatly reduces technical issues on my end and
allows the addition of new playback UI concepts, while still
retaining the UI fluidity of prior.
2022-07-29 12:21:06 -06:00
OxygenCobalt
f93d5f1a69
music: make string hashing more resillient
Make string hashing a custom-made function that actually outputs to a
long.

This prevents overflows from causing a collision.
2022-07-27 09:34:23 -06:00
OxygenCobalt
fe16ffb5bf
queue: temporarily remove navigation
Temporarily remove queue navigation, as it can no longer really fit
with the new transitions.

This will eventually be replaced with a queue bottom sheet, implying
that I can abuse one into working.
2022-07-27 08:48:13 -06:00
OxygenCobalt
6a4803e3d7
ui: add shared axis transition to search
Add a shared axis transition to the search view.

Now theres just the queue view to deal with.
2022-07-27 08:28:14 -06:00
OxygenCobalt
00dec358ab
ui: add fade through transitions to main ui
Add fade through transitions to the main navigation.

This just looks nicer. This currently excludes the search menu,
however.
2022-07-26 21:26:23 -06:00
OxygenCobalt
114d355011
detail: make transitions shared axis
Make detail transitions operate on a shared axis.

This just looks nicer.
2022-07-26 21:18:33 -06:00
OxygenCobalt
ebdbd682b0
ui: rework state layers
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.
2022-07-26 17:24:13 -06:00
OxygenCobalt
6c59a03042
queue: rework internal queue system
Rework the queue internally to decouple the queue from playback and
better respond to reshuffling.

This is being implemented under the assumption that I will be
implementing the sliding queue eventually.
2022-07-26 10:57:24 -06:00
OxygenCobalt
496b72ca78
playback: expose goto to mediasession
Expose the ability to skip to an arbitrary item in the queue to the
MediaSession.
2022-07-25 13:45:23 -06:00
OxygenCobalt
affa8c1c11
queue: add ability to play songs [#92]
Add the ability to jump to arbitrary points in the queue.

This comes at the cost of the long-press option to move items, since
they simply cannot co-exist without visual issues.
2022-07-25 12:20:46 -06:00
OxygenCobalt
6381815fd9
settings: add option to clear state
Add an option to clear the currently saved playback state.

This does not clear playback entirely, but rather remove the saved
state so that it's not restored on the next startup. This is generally
the cleanest solution compared to allowing state restore to be toggled,
which opens up a bunch of race conditions.

Resolves #107.
2022-07-25 09:54:39 -06:00
Weblate (bot)
86a1815b1f
Translations update from Hosted Weblate (#186)
* Translated using Weblate (Czech)

Currently translated at 100.0% (199 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Italian)

Currently translated at 100.0% (199 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Added translation using Weblate (Lithuanian)

* Translated using Weblate (Russian)

Currently translated at 67.3% (134 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Lithuanian)

Currently translated at 19.5% (39 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Turkish)

Currently translated at 95.4% (190 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/

* Translated using Weblate (Lithuanian)

Currently translated at 21.1% (42 of 199 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Translated using Weblate (Czech)

Currently translated at 100.0% (203 of 203 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Russian)

Currently translated at 80.7% (164 of 203 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Lithuanian)

Currently translated at 29.0% (59 of 203 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Czech)

Currently translated at 100.0% (207 of 207 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (German)

Currently translated at 100.0% (207 of 207 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Lithuanian)

Currently translated at 35.2% (73 of 207 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Lithuanian)

Currently translated at 95.0% (19 of 20 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/

* Translated using Weblate (Italian)

Currently translated at 100.0% (217 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Czech)

Currently translated at 100.0% (217 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (German)

Currently translated at 100.0% (217 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Italian)

Currently translated at 99.5% (216 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Lithuanian)

Currently translated at 46.5% (101 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Added translation using Weblate (Croatian)

* Translated using Weblate (Lithuanian)

Currently translated at 61.2% (133 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (20 of 20 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hr/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (217 of 217 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

Co-authored-by: Fjuro <fjuro@seznam.cz>
Co-authored-by: Enrico D'Ortenzio <enrico2588@gmail.com>
Co-authored-by: Vaclovas lntas <vaclovas1999@gmail.com>
Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
Co-authored-by: metezd <itoldyouthat@protonmail.com>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: Elizabeth Wega <elibeti.eb@gmail.com>
2022-07-23 15:17:42 +00:00
OxygenCobalt
0212887610
info: update docs
Update information here and there.
2022-07-20 17:38:20 -06:00
OxygenCobalt
b8ac1e6560
settings: use plain switch <api 23
Use a plain switch before API 23 to prevent tinting issues.

Boy do I love having to accomodate Lollipop's insanity for the
1289289124th time.
2022-07-20 11:11:45 -06:00
OxygenCobalt
19a0728e5b
music: rework release types [#158]
Rework album types into release types, with additional support for live
albums, remixes, and mixtapes.

This is not a complete implementation, nor is it meant to be. I don't
want to add technical complexity handling Remix Compilations or
DJ-Mixes unless there is demand.
2022-07-20 10:53:30 -06:00
OxygenCobalt
36bb729e67
music: add additional album types
Add compilation and soundtrack album type support.

I find use in these, so implement them.
2022-07-19 10:50:27 -06:00
OxygenCobalt
24062aa623
music: update album type display
Only display album types within the artist and album detail menus.

Displaying it elsewhere cluttered the UI somewhat.
2022-07-19 10:28:19 -06:00
OxygenCobalt
30920b399a
info: update faq
Update FAQ.md to reflect the changes to the media indexer in the next
release.
2022-07-18 11:40:57 -06:00
OxygenCobalt
4781d250bf
music: implement album types in UI
Implement album type displays in the album detail, artist detail, and
album item views.

Resolves #158.
2022-07-18 11:16:39 -06:00
OxygenCobalt
f838fc8b0e
widget: update preview
Update the widget preview to reflect the new filled buttons.
2022-07-18 10:16:39 -06:00
OxygenCobalt
276f067152
ui: update material components
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.
2022-07-18 10:06:26 -06:00
OxygenCobalt
ad45b3edb3
search: dont compare genre sort names
Don't compare genre sort names when searching.

Genre names are identical to genre sort names, remove the useless
comparisons.
2022-07-17 10:44:21 -06:00
OxygenCobalt
e881178c4c
ui: fill in transport icons [#187]
Fill in the play/skip icons, as it just looks a bit nicer that way.

This does violate the design guidelines a little, but who cares.
2022-07-17 10:43:11 -06:00
OxygenCobalt
863929fb64
ui: do not enforce contrast after api 29
Set the enforce*BarContrast methods to false above API 29, so we can
use fully transparent navigation and status bars.

Previously, we used a mostly transparent color for such, but now, we
can use a completely transparent color without it being changed to
match contrast.
2022-07-15 21:09:16 -06:00
OxygenCobalt
4d283bc91d
ui: fix app theme
Make the app theme (Shows before activity startup) the blue theme
instead of the default material purple.
2022-07-15 12:13:47 -06:00
OxygenCobalt
969c0c69b7
music: add sort tag support [#172]
Implement sort tag support in the ExoPlayer backend.

Sort tags for grouping is still derived from the templates. Album
artist sort tags are only picked if one is present. System might be
a bit buggy at the moment given that it messes with grouping/sorting
a little.

Resolves #172.
2022-07-13 20:18:12 -06:00
OxygenCobalt
f0d6e13b53
revert "detail: add date added sort [#181]"
Actually, this is not a good idea. No use as far as I am aware, and it
may semantically conflict with playlists.

This reverts commit 3d1dd2a79f.
2022-07-13 15:53:14 -06:00
OxygenCobalt
3d1dd2a79f
detail: add date added sort [#181]
Add a Last Added sort option to the artist and genre detail views.

This completes the last-added implementation.
2022-07-13 15:50:40 -06:00
OxygenCobalt
9921a39784
music: enable quality tags
Actually enable quality tags now.

Now that 2.5.0 is out, I can finally focus on the new metadata system.
2022-07-13 14:27:35 -06:00
OxygenCobalt
f014a2a48d
home: add last added sorting [#181]
Add a "Last Added" sorting option to the home UI's song list.

I don't know if there is any demand for last added in other contexts.
That will be resolved later.
2022-07-13 14:20:35 -06:00
OxygenCobalt
8a4aee9ab1
all: optimize previews
Optimize widget previous and app screenshots to reduce load times and
APK size.
2022-07-13 11:45:13 -06:00
Weblate (bot)
66cdd9d2f5
Translations update from Hosted Weblate (#180)
* Translated using Weblate (German)

Currently translated at 100.0% (189 of 189 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Czech)

Currently translated at 100.0% (193 of 193 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (193 of 193 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/nl/

* Translated using Weblate (Turkish)

Currently translated at 97.4% (188 of 193 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/

* Translated using Weblate (Russian)

Currently translated at 67.8% (131 of 193 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Added translation using Weblate (Japanese)

* Translated using Weblate (Czech)

Currently translated at 100.0% (197 of 197 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Czech)

Currently translated at 100.0% (198 of 198 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Turkish)

Currently translated at 95.9% (190 of 198 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/

Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: Fjuro <fjuro@seznam.cz>
Co-authored-by: 2hot2exist <pyramidex@protonmail.ch>
Co-authored-by: metezd <itoldyouthat@protonmail.com>
Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
2022-07-13 15:27:38 +00:00
OxygenCobalt
08423d5e93
info: update ARCHITECTURE
Update the ARCHITECTURE document to reflect the architectural changes
made in 2.5.0.
2022-07-13 09:27:11 -06:00
OxygenCobalt
ce7dd48f02
all: clean up resources
Clean up resource implementations, removing useless attributes and
simplifying layouts.
2022-07-12 13:13:08 -06:00
OxygenCobalt
ae00a308fe
all: fix version-specific issues
Fix a few version-specific issues so that I don't make a critical
blunder like I did in 2.4.0.
2022-07-12 12:13:49 -06:00
OxygenCobalt
60b637e1ce
all: cleanup
Semi-major code cleanup.
2022-07-11 11:29:34 -06:00
OxygenCobalt
35f05ed902
ui: fix insane background issue
Fix an issue where the background will remain the system default theme
because...reasons.

I don't even know what I did wrong.
2022-07-09 09:00:36 -06:00
OxygenCobalt
6f8dc3c311
music: hide quality tags for now
Hide the new quality tags option for now.

This is not because I wanted to, but rather because of me wanting to
reduce the amount of bugs I will likely be thrown due to the release
of automatic rescanning.
2022-07-08 16:48:28 -06:00
OxygenCobalt
3a7768ad22
music: add automatic rescanning
Add automatic rescanning, for real.

This is the culmination of 6 months of work to make Auxio respond to
music updates and to research the most versatile implementation of
such. Is it the best system? No. It's actually a bit messy by necessity
in order to prevent bugs. Does it work well? Yes.

This will not be enabled by default, as it does require a battery
draining foreground service and is generally not useful for most
circumstances.

So glad to be done with this.

Resolves #72.
2022-07-08 16:42:23 -06:00
OxygenCobalt
83d6c529e2
all: misc ui reworks
Miscellanious UI reworks that accumulated over the past few days.
2022-07-07 10:40:18 -06:00
OxygenCobalt
1730a73eac
settings: add option to force-restore state
Add an option to restore the previous playback state.

This allows me to avoid having to use force stop to restore a previous
state.
2022-07-04 14:22:49 -06:00