Commit graph

262 commits

Author SHA1 Message Date
Alexander Capehart
6fc8a64677
music: move sort name number handling to setting
Make the numeric sort name handling added prior dependent on a new
"Intelligent Sorting" setting that also controls the article checks.

This kind of behavior might not be desirable in all cases, and it makes
the setting more consistent anyway.
2023-03-24 08:26:33 -06:00
Alexander Capehart
45fe36bd09
music: add option to disable article sort names
Add a setting to remove hard-coded sort names based on articles.

This feature is nice, but does not work with some non-english music.
Those individuals should have the ability to disable it.

The implementation honestly is not the greatest, primarily because it
does a 100% reload when it could just regenerate the library. Auxio's
current music model isn't really designed for that, so it will do this
until a need to that kind of "soft reload" really arises.

Resolves #359.
2023-02-20 18:34:01 -07:00
Alexander Capehart
975f239b8b
detail: add metadata to song detail view
Add metadata items to the song detail view. Should provide a useful
view into how Auxio is interpreting song metadata.

Resolves #330.
2023-02-19 21:59:58 -07:00
Alexander Capehart
3c211a1d17
list: make sorting direction explicit
Make sorting direction (ascending/descending) explicit in the UI and in
the code.

Instead of a boolean flag, two distinct "ascending" and "descending"
options are used instead. This should be much clearer.
2023-02-02 21:44:15 -07:00
Alexander Capehart
4a7bc4e511
settings: split up ui
Split up the settings ui into four categories.

This should reduce the visual load on the user as Auxio continues to
accrue possible configuration options.

Resolves #323.
2023-01-16 16:14:51 -07:00
Alexander Capehart
a0aaec98d0
music: extend non-standard artists to id3v2
Just pre-emptively add support for TXXX variations of the non-standard
vorbis artist fields to the ID3v2 parser.

I'd imagine the naming convention will be similar between them, so why
not.
2023-01-16 09:33:20 -07:00
Alexander Capehart
80e85bfffa
replaygain: add reset button to pre-amp dialog
Add a button to reset the pre-amp to it's default setting.

This way, you don't have to specifically seek to the 0 dB value in the
dialog in order to reset it.
2023-01-01 12:29:28 -07:00
Alexander Capehart
dc46c49f07
list: add editable list listener
Add a listener for the editable lists in the queue and tab config
views.

This simply reduces the amount of duplicated code within both of those
views.
2022-12-31 13:47:13 -07:00
Alexander Capehart
f416bb0d00
music: localize list values
When resolving the names of several artists or genres, use a localized
separator instead of a comma.

This makes list values more correct in other languages, if properly
translated.
2022-12-30 16:34:28 -07:00
Alexander Capehart
94e1b71d9b
about: update links
Update links in the about page to direct to the new wiki pages.
2022-12-28 15:19:57 -07:00
Alexander Capehart
195ea074ca
playback: re-add play from genre
Re-add the "Play from genre" setting.

It's much easier to implement this now than prior with the picker
framework, so may as well retain consistency.
2022-12-27 16:24:52 -07:00
Alexander Capehart
200a3dfeaf
appwidget: redocument
Redocument the appwidget (formerly widget) module.

This commit also re-architectures the module somewhat to make further
extension easier later on.
2022-12-23 22:07:10 -07:00
Alexander Capehart
04e25eb90a
ui: add toolbar visual skeleton for selection
Add an overlay toolbar to indicate when selection is occuring.

This has no functionality as of right now.
2022-12-16 11:48:21 -07:00
Alexander Capehart
cf64536118
ui: minor tweaks
More miscellanious tweaks I can't categorize since I have no time.

It's mostly attempts at improving animation visuals an failing. Really
want to switch to material animations once I can finally get the things
working.
2022-12-05 21:14:41 -07:00
Alexander Capehart
086f7836bd
all: cleanup
General cleanup
2022-11-16 09:05:51 -07:00
Alexander Capehart
d9a5920fee
music: add rescan option
Add an option to "rescan" the music library (i.e load without the cache).

If there are issues with the cache, this can be used instead.
2022-11-15 08:44:14 -07:00
Alexander Capehart
2b35fd07b6
playback: disable bluetooth autoplay
Temporarily disable and clean up the bluetooth autoplay system for now
until I can get it working sensibly.
2022-11-14 20:46:12 -07:00
Alexander Capehart
1447069efd
Merge branch 'dev' of github.com:seijikun/Auxio into seijikun-dev 2022-11-14 20:38:10 -07:00
Alexander Capehart
aa50c82635
system: handle fallible databases
Handle errors from databases.

Either way, a crash from a database or a silent error will be equally
nightmarish to debug. May as well keep going if they fail.
2022-11-13 19:26:00 -07:00
Alexander Capehart
42aba9e556
music: add artist count to genres
Add an artist count to genres.

This should make genres more unique from future playlists. A list of
artists will be added later on.
2022-11-12 19:18:48 -07:00
Alexander Capehart
7c913708f2
image: make artist images sort by count
Make artist images sort by count instead of by name.

I've recently added a few singles in my library that have been
cluttering the previous artist image algorithm with non-ideal
covers. Instead of sorting by name (Which was really an artifact
of the old MediaStore engine anyway), sort by the amount of songs
of each album instead, which hopefully should weight images less
towards singles and more towards albums (And especially albums
the user likes).
2022-10-30 21:36:00 -06:00
Alexander Capehart
d6e747cf39
music: update hide collaborator setting string
Update the "Hide collaborators" setting string to be less technical.
2022-10-26 21:22:53 -06:00
Alexander Capehart
1cf1451aef
music: add setting to hide collaborators
Add a setting to hide "collaborators", that is artists that do not show
up on any album artist tags.

This is mostly for my own use since I don't get use from useless
collaborator entries.
2022-10-20 18:36:51 -06:00
Alexander Capehart
daf1cf8590
music: show months in UI
If a song/album date has a month value, show it in the UI.

This hopefully improves the date experience for more well-tagged
libraries. Due to date limitations however, it is limited to
Android O onwards for now.
2022-10-20 18:07:36 -06:00
Alexander Capehart
cdd8f07c7f
strings: remove unused translations
Remove unused string translations to fix build issues.

Resolves #261.
2022-10-04 10:20:17 -06:00
Alexander Capehart
5e0f778daf
image: unify cover settings
Unify the "Show Covers" and "Ignore MediaStore Covers" settings under an
new "Album covers" setting.

This will make it easier to extend to new forms of album cover
collection.
2022-09-26 13:47:43 -06:00
Alexander Capehart
35e402b6b4
playback: unify notif and bar actions
Unify notif and bar actions under a new "ActionMode" enum.

This just makes things consistent.
2022-09-26 13:22:34 -06:00
Alexander Capehart
7a055680bd
all: fix misc issues
Fix miscellanious issues that I've encountered.
2022-09-26 12:07:12 -06:00
Alexander Capehart
f3c14b81cb
all: tweak package structure
Try to tweak the package structure to be more coherent.
2022-09-25 20:24:19 -06:00
Alexander Capehart
66b9da0d5e
music: add toggle to load non-music
Add a toggle to control the IS_MUSIC=1 selector.

This is normally used to remove non-music like podcasts and ringtones,
however some people use Auxio was a general-purpose audio player for
these files, so this setting can be used to disable that selector and
load non-music.

Resolves #246.
2022-09-24 16:11:25 -06:00
Alexander Capehart
37f226ad2d
strings: fix translation insanity
Fix miscellanious translation insanity added by weblate.
2022-09-24 15:44:09 -06:00
Alexander Capehart
62ee46cfe6
music: add multi-artist support
Add semi-complete support for multiple artists.

This changeset completely reworks the music linker to add the following
new behaviors:
1. Artists are now derived from both artist and album artist tags,
with them being linked to songs and albums respectively
2. Albums and songs can now have multiple artists that can be distinct
from eachother
3. Previous Genre picking infrastructure has been removed and replaced
with artist picking infrastructure. "Play from genre" has been retired
entirely.

This is a clean break to the previous artist model and may not work
with all libraries. Steps to migrate the music library will be added
to the changelog.

Resolves #195.
2022-09-23 10:15:28 -06:00
Alexander Capehart
717f49fc20
music: add picker dialog
Add a dialog for picking a genre from several choices.

This basically completes multi-genre support in Auxio, save more
internal reworks.

Note that it is extremely likely that the "Play from genre" setting
will be removed soon. This feature has made me realize that such does
not many any real sense, as genres are more semantically similar to
playlists than artists or albums. This implementation only exists to
make multi-artist support an easy plug-and-play operation.

Resolves #201
2022-09-14 19:59:12 -06:00
Alexander Capehart
33b0aabc44
music: add support for compilation sub-types
Add support for compilation + live, compilation + remix,
and compilation + dj-mix release types.

This was not included due to the changes it required to the
parser. Turns out these changes are largely trivial if I do
more clever inlining.
2022-09-14 10:18:48 -06:00
Alexander Capehart
780e0dce06
music: add separator setting dialog
Add a dialog for the new separators setting.
2022-09-13 11:07:44 -06:00
Alexander Capehart
06d6495dcd
all: lint with ktlint
Just lint with ktlint. It has better import checking functionality.
2022-09-08 21:55:05 -06:00
Alexander Capehart
28d28287fe
music: refactor backends into extractors
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.
2022-09-08 20:41:08 -06:00
Markus Ebner
d0f9b049de
Implement bluetooth autospawn / autoplayback feature #235 2022-09-08 18:16:41 +02:00
Alexander Capehart
40a34f0596
playback: migrate media session to android 13
Migrate MediaSessionComponent to android 13.

This was primarily implementing custom actions with the media session
and adding some extra bug fixes that I was already planning. I was
really hoping that google fixes the nightmarish mess that was the
previous MediaStyle notification, where I had to update the session
and then the notification in a tight dance with clever tricks to not
get rate-limited, but nope. I still have to do exactly the same thing
as beforehand, but with even extra insanity due to the custom actions.
2022-08-16 15:49:54 -06:00
Alexander Capehart
e90983e85d
all: android 13 cleanup
Low-hanging fruit android 13 changes.

This includes fixing some lints and adding a basic monochrome icon.
Maybe I'll improve that icon later.
2022-08-15 20:21:58 -06:00
OxygenCobalt
982abe8cdb
strings: remove system ok/cancel names [#215]
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.
2022-08-12 16:04:41 -06:00
OxygenCobalt
d4884cc9ca
playback: replace song options with equalizer
Replace the song options button in the playback menu with a button that
opens the equalizer.

I plan to re-introduce the song options in another location.
2022-08-11 12:18:14 -06:00
OxygenCobalt
ee68e7ffe9
playback: make replaygain always-on
Remove the "Off" ReplayGain setting, as it is mostly meaningless.

Users who don't want ReplayGain can remove the tags from their files.
No efficiency benefits either since the audio processor is always
disabled without replaygain tags. It is better not to confuse users
who do have ReplayGain but wonder why it is not working on their
files because the setting is off.
2022-08-11 11:44:19 -06:00
OxygenCobalt
9eef57144b
strings: remove broken translations
Remove broken and unused translations.
2022-08-10 15:12:50 -06:00
OxygenCobalt
fc5274ebeb
info: update
Update information in preparation for 2.6.1.
2022-08-10 14:31:16 -06:00
OxygenCobalt
68ca9973df
ui: add basic bar actions [#108]
Add the ability to customize the bar action to the repeat mode or
shuffle state.

This is a much smaller implementation than what I planned, mostly
because other options did not make much sense (queue) or were
superceded by better options (clear state).

Resolves #108.
2022-08-10 13:14:19 -06:00
OxygenCobalt
0cef51fa97
detail: add item type
Add an item type indicator to the top of the detail header.

This is primarily for release type functionality, but also makes it
more clear the item one is looking at.
2022-08-06 14:53:06 -06:00
OxygenCobalt
fa06732e94
strings: remove weird capitalization
Remove strange capitalization choices in an attempt to make the app
more consistent.
2022-08-04 15:28:35 -06:00
OxygenCobalt
4af45031b0
all: fix lints
Fix lints that have accumulated over time.

Apparently Android Studio just...stopped using lints. For no reason. I
had to upgrade to the beta version to actually get lints.
2022-08-04 13:14:21 -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