Commit graph

1157 commits

Author SHA1 Message Date
Alexander Capehart
b103eb4749
music: refactor indexer responses
Make indexer responses use Result instead of an arbitrary response
type.

This is part of a more general rework to move the "No music found"
screen from the home view to the individual home lists.
2023-01-01 13:54:56 -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
1f5594fb33
music: refactor metadata extractor
Refactor the internal tag management portion of MetadataExtractor into a
new "Tags" object that can now be re-used in the ReplayGain system.

This also does a minor rework to the ReplayGain object to make it
totally self-sufficient.
2023-01-01 10:38:50 -07:00
Alexander Capehart
7721e64096
music: split off extractor parsing
Split off parsing-related components from extractor into a new parsing
module.

A lot of these methods are used in non-extractor code, so it makes more
sense for them to not be part of the extractors.

The code that is really extractor-specific can remain within the
extractor files.
2022-12-31 19:50:54 -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
f4aa20b2f1
actions: tweak workflow naming
Tweak the naming of workflow steps to be more consistent and clear.
2022-12-31 11:28:22 -07:00
Alexander Capehart
493b0a9f32
all: rework context-dependent object use
Rework some of the taped together ways context-dependent objects were
replied on in-app, such as removing redundant constructs and extremely
hacky lifecycle mechanisms.
2022-12-31 11:12:50 -07:00
Alexander Capehart
bf56a50b59
all: refactor associating class naming
Standardize from/new companion method usage, Callback/Listener usage,
and companion object visibility across the app.
2022-12-30 19:26:09 -07:00
Alexander Capehart
4ed8a7e967
queue: scroll to top of list on song changes
Always scroll to the top of the queue list when the current song
changes.

This way, the user can see future items rather than past items.

In an ideal world, I would try to go to the center of the queue, but
it seems like the "average" scroll tends to settle at the top no
matter what I do, so whatever. There's also a slight in-accuracy
in what the app considers the "Top" of the queue, but that's considered
minimally detrimental given how much a QoL improvement this is.

Resolves #210.
2022-12-30 17:28:46 -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
58e026e781
music: split off dates into separate file
Split off Dates and Date Ranges off into their own file.

The Music file was getting too big for it's own good, and the addition
of Date ranges makes splitting it off much easier.
2022-12-30 16:18:26 -07:00
Alexander Capehart
cf6e7a5f0d
music: add support for album date ranges
Add support for albums to have a range of dates.

Often compilation albums will have Songs released in different months
or years, so it makes some sense to show a date range rather than just
the ealiest date.

The only point at which the earliest date is still shown is in the home
view's popup, as maxiumum dates in a date range are not sorted by, and
so showing it doesn't make sense.
2022-12-30 16:09:41 -07:00
Alexander Capehart
affe5c482b
all: reformat code 2022-12-30 11:39:28 -07:00
Alexander Capehart
f6b7a8f448
music: formalize whitespace handling
Formalize how whitespace tags are handled.

The checks for blank tags and removal of trailing whitespace from tags
are now the same function, carefully used to prevent blank tags from
setting through.

More testing will need to be done in order to fully ensure this system
will work as intended.
2022-12-30 08:42:35 -07:00
Alexander Capehart
05cf0f7261
music: fix music loading crash with weird genres
Fix an issue where genres consisting only of whitespace crash the genre
parser, and thus the music loader.

Band-aid this by moving the trimming code out of splitEscaped and into
maybeParseSeparators. In a future version I'll need to figure out how I
want to handle these weird edge cases.
2022-12-29 21:09:35 -07:00
Alexander Capehart
6db50a0e45
music: fix incorrect cache fields
Fix incorrectly populated cache fields.
2022-12-29 20:07:25 -07:00
Alexander Capehart
57ed102cda
music: move cache to storage
Move the music cache to the app storage.

This is actually long-term data, so it makes more sense to do app
storage where it's less likely to get mangled.
2022-12-29 19:29:46 -07:00
Alexander Capehart
d16fc2e446
queue: re-add adaptive divider visibility
Re-add the adaptive divider functionality that was accidentally removed prior.
2022-12-29 14:49:28 -07:00
Alexander Capehart
88f3439e35
info: update branding
Update app branding.
2022-12-28 17:35:36 -07:00
Alexander Capehart
32db8a591a
all: tie up loose ends
Tie up some loose ends before 3.0.0's release.
2022-12-28 15:44:44 -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
5764c19801
info: retire info documents
Retire the old information documents in favor of the new wiki.
2022-12-28 14:45:22 -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
cce7b766d7
all: reformat code
Reformat all project code
2022-12-26 19:59:27 -07:00
Alexander Capehart
7212700553
list: drop selections when navigating
Drop item selections when navigating to another view.

This resolves issues that might occur if one were to navigate fast
enough to another view after selecting something. If I were to use a
unified toolbar, this wouldn't be needed, but that is a very far-flung
addition.
2022-12-26 19:08:08 -07:00
Alexander Capehart
0737dbace3
playback: redocument
Redocument the playback module.

This finally completes the re-documentation of this project.
2022-12-26 15:15:27 -07:00
Alexander Capehart
8fa1c92047
music: fix documentation errors
Fix erros in music documentation.
2022-12-25 20:43:40 -07:00
Alexander Capehart
cc8f429044
music: strengthen auxio uids
Strengthen Auxio-style UIDs.

These UIDs now leverage SHA-256 hashes with null values now writing
themselves as 0 in order to avoid possible message collissions from
other value arrangements.
2022-12-25 20:32:35 -07:00
Alexander Capehart
9cf8d54353
replaygain: redocument
Redocument the replaygain module.
2022-12-25 20:05:32 -07:00
Alexander Capehart
9d283fc6e4
accent: move back to ui
Move the accent module back into the ui module, where it's more consistent.
2022-12-25 19:32:34 -07:00
Alexander Capehart
7394e87471
queue: redocument
Redocument the queue module.
2022-12-25 19:29:48 -07:00
Alexander Capehart
b086c44b59
settings: redocument
Redocument the settings module.
2022-12-24 16:13:30 -07:00
Alexander Capehart
18ba845302
shared: redocument
Redocument the shared module (previously ui).
2022-12-24 11:41:32 -07:00
Alexander Capehart
295d2dfd39
search: redocument
Redocument the search module.
2022-12-24 10:18:05 -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
b38b8a909f
all: remove superfluous comments
Remove superflous comments that really add nothing.
2022-12-23 11:22:37 -07:00
Alexander Capehart
7415c28e2d
util: redocument
Redocument the util module.

This should make the purpose of the utilities used in this app clearer.
2022-12-22 20:25:54 -07:00
Alexander Capehart
e92b69e399
music: redocument
Redocument the music module.

Much of it's documentation has drifted from reality as changes were
made, this commit completely redoes the documentation in order to
fix that.
2022-12-22 17:17:35 -07:00
Alexander Capehart
4773a84741
all: redocument project, part 1
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.
2022-12-19 20:22:36 -07:00
Alexander Capehart
813daed644
detail: add selection
Add selection to the detail views.
2022-12-18 15:01:31 -07:00
Alexander Capehart
32d01f2027
all: refactor list management
Refactor list management (largely callbacks) into a declarative system.

This should make it easier to re-use selection components across the
app.
2022-12-18 10:58:45 -07:00
Alexander Capehart
8aeb6d092e
search: add selection
Add selection to the search view.
2022-12-17 16:22:54 -07:00
Alexander Capehart
3d03194878
home: reset selection when navigating
Reset the selection in the home view when navigating to other
selectable screens.

Without a unified Toolbar, this makes no sense.
2022-12-17 15:14:30 -07:00
Alexander Capehart
c353ffd705
home: expand appbar when selection starts
Expand the home AppBarLayout when a selection begins (Excluding
initialization)
2022-12-17 13:29:13 -07:00
Alexander Capehart
f3365fc40b
home: add selection actions
Implement actions for selections in the home view.

Play selected and shuffle selected have been removed for now until the
queue can be properly reworked
2022-12-16 13:35:48 -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
900a64bc02
playback: add support for mp4 replaygain
Add support for MP4 ReplayGain tags. These are usually under a `----`
atom with an iTunes domain and ReplayGain description. These are
mapped to an ID3v2 internal frame within ExoPlayer, which is why
Auxio did not support them, as it only expected Vorbis comments and
ID3v2 TXXX frames.

Resolves #292.
2022-12-15 21:01:41 -07:00
Alexander Capehart
873f15ff40
all: remove immature comments
Remove childish wording/diatribes from the codebase that were added
when I was younger.

I'm an adult now. I have to make this repository at least somewhat
professional.
2022-12-15 14:21:21 -07:00
Alexander Capehart
761dab9239
ui: split off selection from home
Split off selection functionality from the home fragment to a new
selection viewmodel.

It's going to be used elsewhere, so may as well.
2022-12-15 13:59:40 -07:00
Alexander Capehart
f1ae870eea
ui: update list spacing further
Update other uses of list spacing in-app to be more consistent with the
new, slightly more compact style
2022-12-07 21:31:43 -07:00