Commit graph

771 commits

Author SHA1 Message Date
Alexander Capehart
a6716293cd
music: reformat 2024-07-03 21:55:54 -06:00
Alexander Capehart
c8fa389267
music: add stack trace to async load task error 2024-06-28 20:23:29 -06:00
Alexander Capehart
296d9c3ca3
music: disable perceptual cover art keying
Too slow, need to aggressively optimize the music loader before even
THINKING about this, and if anything likely defer it.
2024-06-20 21:54:49 -06:00
Alexander Capehart
d27e714ce6
Merge branch 'music-fixes' into 3.5.0 2024-06-20 21:08:58 -06:00
Alexander Capehart
5861d1db87
music: use both ogg/mp3 style mb tags at once
Apparently both can exist on both types of files, and grouping will
break as a result due to MBID mismatch.
2024-06-13 19:50:53 -06:00
Alexander Capehart
ba0d2cd879
playback: add tab icons 2024-06-09 20:25:33 -06:00
Alexander Capehart
4f71dba90e
playback: fix various android auto issues
- Broken queue
- Unusable item details
2024-06-09 19:43:08 -06:00
Alexander Capehart
dbe7bdf1c3
music: fix m3u volume processing 2024-06-09 16:50:31 -06:00
Alexander Capehart
d906b87d76
all: reformat 2024-06-08 19:20:18 -06:00
Alexander Capehart
8b2634df4d
music: handle total absolute m3u paths
Some players like generating M3Us with paths starting with
/storage/.../..., so I need to handle those too.
2024-06-08 15:06:04 -06:00
Alexander Capehart
1c74f05222
all: fixes/reformat 2024-06-08 11:58:18 -06:00
Alexander Capehart
27e39b6c10
music: interpret m3u paths as relative & absolute
Resolves #673
2024-05-26 21:51:12 -06:00
Alexander Capehart
66db61899c
playback: remove custom bitmap loading
Media3 simply will not tolerate me doing this. I am basically stuck
at the mercy of the Android OS now, until I can have my own unified
source of truth with cover loading.
2024-05-17 15:38:12 -06:00
Alexander Capehart
aec08bb48b
all: reformat/fixes 2024-04-22 10:46:44 -06:00
Alexander Capehart
a4838cefaa
image: properly differentiate cover types
- If we could find an embedded cover, then we can treat it as a
per-song cover
- Otherwise, just do our old album-based behavior.
2024-04-22 10:44:03 -06:00
Alexander Capehart
e687658874
image: properly handle uniqueness of non-embedded covers
Use a UID instead. This is non-ideal but all we can do.
2024-04-22 08:36:59 -06:00
Alexander Capehart
51406deaa7
image: complete per-song album covers
- Implement perceptual hashing algorithm to efficiently cache images
- Efficiently pre-sort cover sources to make cover images load without
freezing and look more pleasing

Resolbes #342.
2024-04-20 14:31:38 -06:00
Alexander Capehart
bd330f0c71
image: basic per-song album covers
Without any good caching support, so this will immediately break down.
2024-04-19 22:16:50 -06:00
Alexander Capehart
8b7b916489
playback: fix notif issues on older devices
- Slight coroutine delay in cover fetch causes the notif to flicker
- Default play/pause actions look absolutely hideous
2024-04-19 19:08:30 -06:00
Alexander Capehart
a3e74cbd1e
music: update search results when library changes 2024-04-14 12:59:31 -06:00
Alexander Capehart
02b7acd1c5
music: update search results as well 2024-04-14 12:15:16 -06:00
Alexander Capehart
aac39b771d
music: sort mediaitems sent in browser 2024-04-12 14:04:28 -06:00
Alexander Capehart
07b17caf8f
music: fix mediaitem library update logic 2024-04-12 13:58:53 -06:00
Alexander Capehart
be23208f72
service: break into components 2024-04-11 23:48:45 -06:00
Alexander Capehart
24097af28c
playback: cleanup 2024-04-11 15:09:44 -06:00
Alexander Capehart
fb15791c2f
playback: backfill
Forgot to add these to other commits
2024-04-11 15:09:00 -06:00
Alexander Capehart
33916deb5c
playback: remove joined uids from parents
Not needed.
2024-04-11 15:08:34 -06:00
Alexander Capehart
3b14c35c2d
music: fix mediaitem pagination 2024-04-11 15:07:36 -06:00
Alexander Capehart
99a527983b
service: break up
Break up the monster AuxioService into sub-classes, keeping just the
major lifecycle and music stuff in AuxioService for now (which will
likely be split out itself eventually)
2024-04-10 19:18:04 -06:00
Alexander Capehart
04ea6834fb
playback: rearchitecture around media3 (prototype)
Nowhere near complete in any capacity.
2024-04-07 23:25:53 -06:00
Alexander Capehart
86b7ef8d5c
music: fix crash on playlist add
Caused by the new state restoration code being bugged and applying on
playlist changes, then combined with the playlist code not properly
switching to the main context when dispatching a library update.
2024-04-07 23:25:52 -06:00
Alexander Capehart
22a22a883f
service: unify playback and indexer
Playback and indexing now occur in the same service through a new
bridge called AuxioService.

AuxioService contains the existing service instances as Fragment
implementations, and then forwards typical service events to them
(albeit this will drift more and more as I continue to deal with
lifecycle issues).

This should be the first step in enabling true service independence,
as it means that the service will now immediately initialize and load
music as soon as possible.
2024-04-07 23:25:52 -06:00
Alexander Capehart
6a76a55060
music: bump cache db version 2024-02-24 14:38:21 -07:00
Alexander Capehart
3a04bef074
all: reformat 2024-02-24 13:28:49 -07:00
Alexander Capehart
07a98029c6
music: fix opus replaygain interpretation
- Don't parse the base gain, the media player actually does apply it.
- Adjust R128 tags to LUFS -18 to be consistent w/MP3.

Resolves #521.
2024-02-20 11:12:24 -07:00
Alexander Capehart
6730766504
music: increase music load timeout
TagExtractor can take longer than 10 seconds to load, increase it to 60
seconds.
2024-01-28 21:38:45 -07:00
Alexander Capehart
8dc0be4a52
all: cleanup 2024-01-21 20:01:26 -07:00
Alexander Capehart
68443dc337
Merge branch 'dev' into gapless-playback 2024-01-14 12:12:49 -07:00
Alexander Capehart
07acb4f5b9
music: fix data selector creation
More or less, the paths being selected for were extremely malformed,
stuff like storage/emulated/0Music. This completely broke music folders
below API 29.
2024-01-14 11:00:52 -07:00
Alexander Capehart
f1a6b77d30
music: fix other music loading failure from dirs
Turns out there are two ways the selector can go malformed. One was the
complicated issue where you can't resolve a directory, the other was me
*missing a character* and not even building the selector right.
2024-01-14 09:55:43 -07:00
Alexander Capehart
4234f5b8f1
music: update cache db 2024-01-13 22:23:42 -07:00
Alexander Capehart
b4833918cf
music: fix opus base gain extraction
I have no idea how it ended up this mangled.
2024-01-13 22:16:13 -07:00
Alexander Capehart
bd240f967e
playback: reimplement state saving 2024-01-13 18:34:17 -07:00
Alexander Capehart
6a0fd76636
music: fix selector error with malformed folders
Forgot that i is not a good indicator of if we need to begin a selector
or not since we may discard certain music folders.
2024-01-09 13:50:47 -07:00
Alexander Capehart
26d14ec6e1
playback: ramshack initial gapless playback impl 2024-01-07 16:05:03 -07:00
Alexander Capehart
5d5356e46e
all: cleanup 2024-01-06 21:02:40 -07:00
Alexander Capehart
5c85001b0c
music: add opus base gain support
OPUS has another volume adjustment field on top of the existing R128
adjustments. I was under the impression this was handled by the android
system, but apparently not. This commit applies the base gain to files
by just adding them onto the existing ReplayGain values.

Resolves #521.
2024-01-06 18:26:53 -07:00
Alexander Capehart
c4143e7d95
music: log when volume cannot be found
Mostly for debugging purposes.
2024-01-05 12:36:51 -07:00
Alexander Capehart
3202660449
music: add check to playlist export dialog 2024-01-03 18:51:29 -07:00
Alexander Capehart
2b55caadd1
home: fix more speed dial touch problems
Handle back presses gracefully without finicky behavior when doing back
gestures.

I've spent far too much time trying to make this sensible. I'm going to
take a break.
2024-01-02 17:19:10 -07:00