Commit graph

1356 commits

Author SHA1 Message Date
OxygenCobalt
2c7dd1241b
style: remove android string references
Remove references to android system strings, in favor of in-house
translations.

Previously Auxio would use the `android.R.string.ok` and
`android.R.string.cancel` strings to represent Ok and Cancel
respectively, but these system strings are actually untranslated on
some devices, so it is better for i18n if we use our own strings
for such.
2022-05-22 09:56:25 -06:00
OxygenCobalt
21fccf1f31
playback: add pre-amp customization
Implement a UI frontend for customizing the ReplayGain pre-amp value.

This finally completes Auxio's ReplayGain implementation. Not only
that, it also shows how Auxio can use positive ReplayGain values,
unlike other apps.

As a side-note, this also fiddles with the dialog style somewhat.
I got carried away.

Resolves #114.
2022-05-22 09:32:23 -06:00
OxygenCobalt
519de0e1d5
playback: add framework for handling pre-amp
Implement an internal setting for a ReplayGain pre-amp setting.

Pre-amp is a lot like above reference volume regarding Auxio's
ReplayGain implementation, where I want to implement it in order
to allow ReplayGain to graduate from being labeled "experimental".

No UI frontend has been implemented just yet.
2022-05-21 16:34:20 -06:00
OxygenCobalt
2d7dbd19cd
ui: rework custom ui components
Refactor the package structure and implementation of custom UI
components.
2022-05-21 14:52:08 -06:00
OxygenCobalt
61839405ce
home: hide tabs when there is only one
Hide the tab selector when there is only one tab.

This is mostly to remove a redundant UI element that has no purpose
when only one list is shown.
2022-05-20 20:01:14 -06:00
OxygenCobalt
28feebcec3
sort: add duration and count sorts
Add sorting modes for duration and song count.

This was requested previously in the now-closed UI/UX changes
megathread, however I have only gotten to it now.
2022-05-20 18:33:56 -06:00
OxygenCobalt
059652d2f1
all: fix misc issues
Fix miscellanious issues with documentation and the playback system
2022-05-20 11:30:56 -06:00
OxygenCobalt
9edc113ebb
Merge branch 'enricocid-it_translations' into dev
Update italian translations
2022-05-19 19:32:42 -06:00
OxygenCobalt
28cedd1240
music: attempt to handle bad DISPLAY_NAME [#120]
Add recovery code to the music indexer in the case that Android doesn't
provide the DISPLAY_NAME field.

Nominally this should never happen, but OEMs will OEM and apparently
this does happen on some devices. Try to recover by grokking DATA for
a file name.
2022-05-19 17:37:19 -06:00
OxygenCobalt
0b9141d474
sort: rework implementation
Rework the sort implementation to allow Auxio to leverage it's sorting
capabilities in a more powerful manner.

This is mostly the removal of stupid redunant methods and the change of
Sort overrides to sort in-place. This just gives us the option to avoid
full blown list copies in cases where such is reasonable.
2022-05-19 17:16:33 -06:00
OxygenCobalt
c522af546c
detail: add full disc number support
Finalize the disc number implementation within Auxio.

This is probably one of the most widely-requested features outside
of playlisting. This implementation also adds some more fine grained
sorting modes for disc numbers in particular, which actually removes
some of the quirkiness of the Sort class.

Resolves #96.
2022-05-19 16:43:01 -06:00
OxygenCobalt
04f254f91b
music: add disc number indexing
Change the indexer to parse out the disc number field from
AudioColumns.TRACK.

On newer versions, I hope to further modify the loader to use
the API 30+ CD_TRACK_NUMBER field, as it is more versatile than
TRACK.
2022-05-18 20:03:45 -06:00
OxygenCobalt
6f2a0d66c6
detail: add framework for disc number items
Add the UI and data components for a disc number value within the album
detail view.

This is the first-step of a multi-step addition to finally implement
disc numbers.
2022-05-18 17:30:50 -06:00
OxygenCobalt
5381e9f9a2
playback: remove media button reciever impl
Make MediaButtonReceiver an empty class without any behavior.

The previous manner in which Auxio would handle media button events
was actually bad, as in certain cases (like a rewind or if there was
no song playing) Auxio would actually crash, as the service would
not start a foreground state in time.

Fix this by removing that functionality. This should hopefully still
retain the current state.
2022-05-17 06:29:55 -06:00
OxygenCobalt
4a79de455a
playback: rework service components
Try to rework the playback service components to reduce race conditions
and improve readability.

This changeset has gone through a number of changes. I originally
wanted to unify all cover loading under a single "Component Manager",
but this turned out to be stupid given that the three service components
are different in nearly every way. Instead I just reworked them all
individually by introducing a new less-data race-prone image loading
framework, and moving around a bunch of code I was planning to move
around.
2022-05-16 20:37:42 -06:00
Enrico D'Ortenzio
e785f5a3a5
Update it translations 2022-05-15 16:03:16 +02:00
OxygenCobalt
d296a3aed9
all: rework formatting
Do some miscellanious formatting reworks.

1. Remove all instances of m in favor of _. _ is only used when names
collide or if something should be internal.
2. Make fragments apply their own click listeners.
3. Remove instances of inc/dec and replace them with the more
straightfoward + 1 or - 1.
2022-05-11 19:03:56 -06:00
OxygenCobalt
1a9e55e73b
about: add full library statistics
Split off the "songs loaded" about item into it's own card called
"library statistics"

This card includes the song, album, artist, and genre counts,
alongside a total duration of the music library. This is just more
informative and useful to the user.

Resolves #121.
2022-05-04 20:20:47 -06:00
OxygenCobalt
ac6a471318
playback: fix index bug
Fix some index bugs by using inc/dec instead of ++/--.
2022-05-02 18:35:26 -06:00
OxygenCobalt
e451bc9859
playback: rework state restore
Rework state restore to be more coherent and in line with the new
member layout of the general

This primarily involves making the index the primary database attribute
in favor of song, with the old song id field becoming a sanity check
field.
2022-05-02 17:43:01 -06:00
OxygenCobalt
1e7a439c31
deps: switch material to 1.6.0-rc01
Switch material components to the more stable 1.6.0-rc01. Have to deal
with android complaining, but whatever.
2022-05-01 17:54:37 -06:00
enricocid
ece5dc06c0 Italian translations
Signed-off-by: enricocid <enrico2588@gmail.com>
2022-05-01 21:44:13 +02:00
OxygenCobalt
a645c3a217
deps: upgrade deps
aaaaaaa
coil -> 2.0.0-rc03
material -> 1.7.0-alpha01
leakcanary -> 2.9.1
navigation -> 2.4.2
kotlin -> 1.6.21
agp -> 7.1.3
2022-04-29 20:14:17 -06:00
OxygenCobalt
d57f980148
playback: cleanup components
Fix miscellanious bugs and clean the component code.

Currently the components are in a strange state. They are a big ball of
mud with inconsistent lifecycles and callbacks. I want to find a way to
unify them under a single lifecycle, but the competing nature of them
makes this extremely difficult.
2022-04-29 19:53:58 -06:00
OxygenCobalt
6adc5f8715
playback: fix service state issues
Fix a bunch of miscellanious state issues with the playback fragment.
2022-04-29 16:17:26 -06:00
OxygenCobalt
8e849feb7d
playback: rename loopmode to repeatmode
Rename LoopMode to RepeatMode, which is generally much clearer
than the previous name.

This changes all non-breaking instances of "loop" in the app with
"repeat".
2022-04-29 14:52:33 -06:00
OxygenCobalt
c80af01d5c
playback: rework fields
Rework the playback fields.

The new fields are more coherent, better-named, and less prone to state
failure.
2022-04-29 14:29:56 -06:00
OxygenCobalt
2bdbe212df
playback: decouple fields and callback
Decouple the callback notifying code and the field code. This makes
code more reasonable for future changes.
2022-04-29 12:07:14 -06:00
OxygenCobalt
60367c45c3
nit: fix typos
Fix miscellanious typos.
2022-04-28 22:03:15 -06:00
OxygenCobalt
3d03bf9b7e
playback: fix position polling bug
Fix a bug where position polling would stop when the audio focus
state changed.
2022-04-28 20:04:10 -06:00
OxygenCobalt
bcec9272d3
Merge branch 'dev' of github.com:OxygenCobalt/Auxio into dev 2022-04-28 19:59:11 -06:00
OxygenCobalt
3d70028bd2
playback: remove playbackmode field
Remove the useless PlaybackMode field.

Parent does the same job, but better.
2022-04-28 19:58:39 -06:00
User_Name
21335859b2
updated translation 2022-04-09 01:34:59 +03:00
OxygenCobalt
180faa6f50
music: rework callback configuration
Rework the asynchronous aspects of MusicStore to rely on a more
conventional callback system.

In preparation for automatic rescanning, it would be more elegant
for music consumers to use a callback, so that updates can be
registered easier than if a co-routine continued to be used.
Convert MusicStore to this new model and rework the accesses of
MusicStore in-app to line up with this new system.
2022-04-07 20:18:25 -06:00
OxygenCobalt
3a19d822ce
music: rework name heirarchy
Once again rework the naming system for music, this time with it being
much easier to localize (hopefully).
2022-04-03 12:54:29 -06:00
OxygenCobalt
ab194c14c2
ui: create viewmodel for navigation
Create a ViewModel for the more complicated navigation pathways.

Normally, navigation was fragmented along a complicated stretch of
fragment hacks and DetailViewModel's navToItem attitbute, both of which
were not really that ideal. Dumpster them for a single, unified
viewmodel for the more complicated navigation situations. This removes
much of the duplicate navigation logic and is likely much more
maintainable for future situations.
2022-04-02 20:21:06 -06:00
OxygenCobalt
74f5962844
ui: rework cover style
Rework the style of all album covers in the app to be more in line with
the new track number style.

This is mostly comprised of adding a new background to all cover views
and rescaling error icons to be smaller than they would normally be.
This also includes a change in the cover/track background color from
colorSurfaceVariant to colorOnSurfaceInverse, which seems to provide
the best visibility in all cases.

These changes also apply to the track number views.
2022-04-02 18:18:10 -06:00
OxygenCobalt
e387e72b2c
detail: update album song layout
Update the album song layout to be more alike to other songs.

Recently I migrated the TextView in the album songs to use 48dp sizing,
like the other song views. However, this resulted in a lot of empty
space that felt off. Fix this by adding a light background to the track
number, which fills the room it takes up a bit more. It also hopefully
primes the track number to take an indicator once multi-select is
added.
2022-03-29 20:08:57 -06:00
OxygenCobalt
0107d9ff32
playback: remove extraneous encodings
Remove extraneous encodings from ReplayGainAudioProcessor.

According to the ExoPlayer developers, an AudioProcessor is only
provided 16-bit PCM data. This makes all of the other encodings I
had implemented in ReplayGainAudioProcessor useless, as their
cases would never run. Remove those extraneous encodings and just
just 16-bit PCM.
2022-03-29 06:27:42 -06:00
OxygenCobalt
59a56090e8
playback: add positive replaygain values
Implement support for positive ReplayGain values.

Turns out the blocker for this with the new AudioProcessor was that
I did not properly clamp PCM data when I manipulated the data,
resulting in target samples like 75491 being truncated to lower
values like 9955, which resulted in popping. This is a niche addition,
but also puts Auxio in a category that no other (FOSS) android music
player currently occupies. Yay.

Resolves #115.
2022-03-28 19:58:25 -06:00
OxygenCobalt
b4abad26cd
playback: migrate replaygain to audioprocessor
Create an AudioProcessor implementation for ReplayGain.

Now that ExoPlayer handles AudioFocus, the ReplayGain implementation
would conflict with the changes that ducking would make to the volume.
To fix this, migrate the ReplayGain implementation to a dedicated
audio processor. This not only resolves this system, but also opens the
door for positive ReplayGain values in the future. Currently however,
our method for modifying the bitstream results in popping with values
above the reference volume, so some more work must be done in that
regard.
2022-03-27 20:33:01 -06:00
OxygenCobalt
b748d73abb
playback: rework audio focus
Rework audio focus to rely on the native ExoPlayer implementation
instead of a custom implementation.

Previously, we avoided ExoPlayer's AudioFocus system as it never
played after a transient lost. A few versions later now through,
now it does, so we may as well switch to it. This does introduce
a bug where ReplayGain functionality will conflict with audio
focus, but I hope to eliminate this with #115 as I switch to
an AudioProcessor instead of a callback.
2022-03-27 11:51:58 -06:00
OxygenCobalt
e54a58c612
ui: audit null safety
Audit null safety to remove extraneous and stupid calls while
optimizing certain checks here and there.

This commit is primarily centered around the introduction of a new
utility: unlikelyToBeNull. This call uses requireNotNull on debug
builds and !! on release builds, which allows for bug catching in
an easier manner on normal builds while also allowing for
optimizations on the release builds.
2022-03-27 11:23:07 -06:00
OxygenCobalt
05a5ef5c3f
ui: migrate esoteric adapters to framework
Migrate all esoteric adapters to the new RecyclerView framework.

One of the shortcomings with the previous RecyclerView utilities was
how more esoteric adapters with data that does not implement Item
could not use the utlities. The new system, by comparison, is capable
of taking any type of data, so we can no migrate all of the esoteric
adapters to the new system.
2022-03-27 09:59:35 -06:00
OxygenCobalt
2406c371db
widgets: work around new coil scaling behavior
Fix an issue where album covers fail to load when not explicitly
specifying a size.

At some point, Coil changed some internal scaling logic to depend on
this weird pseudo-screen size value that caused the bitmap to fail
to load only on in widget creation process. Who knows why. Fix this
by explicitly specifying the size in all cases.
2022-03-26 11:43:48 -06:00
OxygenCobalt
8100f294d7
recycler: spin off data into separate class
Spin off the data instances into their own class called BackingData.

This is to isolate the sane adapters that rely on one type of diffing
from the insane adapters that use synchronous and asynchronous diffing
simultaniously. It also allows some of the more esoteric adapters to
implement their own backing data without much trouble or leaky
abstractions.
2022-03-26 11:32:54 -06:00
OxygenCobalt
ee1a234e76
ui: rework base adapter class
Completely rework the base adapter class to require less boilerplate
and properly handle cases such as diffing. The major adapters have
been migrated to this system, but the other adapters have not been
changed so far.

This is only part 1 of a multi-part rework, as this is an incredibly
complex system.
2022-03-26 10:16:36 -06:00
OxygenCobalt
595a982d59
all: cleanup
Clean up the project after the previous changes and update some
dependencies.
2022-03-23 12:27:49 -06:00
OxygenCobalt
d79592e029
all: remove databinding
Remove databinding entirely.

Databinding was a terrible idea for Auxio. I rarely leveraged it, and
when I did, it produced messy code and bloated build times. Dumpster it
for just viewbinding, which is good. This reduces building times by
nearly 2/3, and generally makes the codebase more coherent and usable.
2022-03-23 10:59:01 -06:00
OxygenCobalt
95057ec357
all: move all fragments to ViewBindingFragment
Move all fragment instances to the new ViewBindingFragment paradigm,
which should help immensely with reducing memory leaks from list
bindings and to really alleviate the overloaded onCreate functions.
2022-03-23 09:18:08 -06:00
OxygenCobalt
8f38ed6ee5
playback: rework view implementations
Rework the playback views to follow the new idioms I want to use for
Auxio.

This change mostly consists of flattening away some of the custom
views, removing databinding, and using a general viewbinding
fragment that I hope to extend to the entire app.
2022-03-21 20:15:42 -06:00
OxygenCobalt
e4d4266e35
playback: rework playback slide up implementation
Rework the playback slide up implementation to be more straightfoward.

This is really composed of stylistic improvements, very little in
actual behavior changes. This does re-introduce a regression when
nothing is playing where the scroll position will become off when
rotating, but that desynchronization happens often so unless I were
to completely migrate both the panel and the bar to a view, I don't
really see it as an issue.
2022-03-20 12:33:49 -06:00
OxygenCobalt
608112a7ac
all: migrate to centralized constant table
Migrate to a centralized constant table for easier management.

Previously, Auxio would tie constants to the class itself, which
led to a largely disjointed system that relied on an internal table
so that it would stay sane. This commit moves all of those constants
to a single table for easier usage and management.
2022-03-19 20:05:57 -06:00
OxygenCobalt
9be97bb329
Merge branch 'dev' of https://github.com/kontillion/Auxio into kontillion-dev
Updated German translation
2022-03-19 18:48:50 -06:00
OxygenCobalt
9c07ad2d34
sort: completely rework class
Completely refactor the Sort class to be more efficient and
straightforward.

The original Sort class had *major* shortcomings, it was slow,
poorly organized, and relied on abusing compareBy to implement
special things like article sort. This rework eliminates all of
that in favor of a new system relying on custom comparators and
chaining to achieve something much faster and maintainable.
2022-03-19 15:44:11 -06:00
OxygenCobalt
90f10f2a84
home: clean up fast scroller
Clean up the fast scroller implementation to remove dead code and
be more coherent in general.
2022-03-19 10:59:13 -06:00
Konstantin Tutsch
67f90a9494
Improved language quality of german translation 2022-03-17 20:53:43 +01:00
Konstantin Tutsch
4f4b493fb6
Added german translation for headset autoplay feature 2022-03-17 20:50:53 +01:00
Konstantin Tutsch
c00b078fcf
Updated German translation
Translation for rounded covers and the restart button
2022-03-17 16:12:11 +01:00
OxygenCobalt
484f5c8490
Merge branch 'dev' of https://github.com/cccClyde/Auxio into cccClyde-dev
Update strings translation for zh-rCN.
2022-03-15 06:25:47 -06:00
OxygenCobalt
0417a77b33
music: make resolvedName standard
Make resolvedName the standard name to use across all music items.

Previously, the way Auxio differentiated between names in UIs was to
use name for normal items and resolvedName for parents. This was odd
and disjointed, as it muddled the meanings of the two fields and lead
to a lot of bugs. Fix this by making resolvedName *the* standard name
to use across all music items, even in ones that don't have to resolve
their name.
2022-03-13 20:22:19 -06:00
OxygenCobalt
2ff7d93263
all: view cleanup
Do even more cleanup regarding views.
2022-03-13 18:56:24 -06:00
OxygenCobalt
33da09a08a
all: switch to spotless
Switch to the spotless linter with ktfmt used as a backend instead of
ktlint.

This switch was done for two reasons:
1. ktfmt is more thorough than ktlint
2. License headers can be added more effectively with spotless than
the default Android Studio behavior.

Dump all of the changes now so I don't have to deal with it over a long
period of time. I don't care.
2022-03-13 17:38:19 -06:00
OxygenCobalt
627ab97948
all: cleanup
A bunch of small changes that have accrued over the last week due to
having more or less no time to work on Auxio.
2022-03-13 16:42:03 -06:00
Clyde
2d9d986697
Update strings.xml
Update translations for zh-rCN
2022-03-12 09:03:37 +08:00
Clyde
b662d2e59d
Merge branch 'OxygenCobalt:dev' into dev 2022-03-12 08:47:34 +08:00
OxygenCobalt
82247775ac
Version 2.2.2
Ready for version 2.2.2 of Auxio.
2022-03-08 16:19:02 -07:00
OxygenCobalt
3293637cfd
all: minor cleanup
Do some minor cleanup before the next release.
2022-03-08 16:13:59 -07:00
OxygenCobalt
7b5c49a5b3
ui: disable default actions in drag helpers
Disable the default long-press action in the ItemTouchHelper usages.

ItemTouchHelper provides a long-press action to start an item drag by
default. However, because Auxio adds a drag handle on top of this
action, this actually results in a conflict with the default behavior
in certain cases. Replace it with a custom version of the long-press
action within the viewholders themselves.
2022-03-07 08:33:49 -07:00
OxygenCobalt
d3d6d18d5d
music: fix crash below android 8 [#95]
Fix a crash that stemmed from the use of the API 30+ database field
CD_TRACK_NUMBER.

I switched to CD_TRACK_NUMBER in 1e39ceb to fix [#88], however I did
not realize that CD_TRACK_NUMBER was actually only supported on API
30 onwards. This led to a load failure on versions before API 30.
2022-03-07 07:18:15 -07:00
OxygenCobalt
b5b8767f46
playback: fix crash with state restore [#89]
Fix an esoteric crash with queue synchronization during the playback
restore process.

Auxio will attempt to re-synchronize the queue index whenever it is
desynchronized, however during the check for if it's desynchronized,
Auxio would do a direct index of the queue, which could result in a
crash in situations where the desynchronized index is outside of the
queue bounds.

Fix this by replacing that unprotected access with a protected access,
which not only fixes the crash but also still correctly detects
desynchronization in that case.

Resolves #89.
2022-03-06 19:25:48 -07:00
OxygenCobalt
1b791074ec
playback: replace headset focus with headset autoplay
Turn the headset focus setting into the headset autoplay setting.

The way auxio handles headsets is...odd. Sometimes the MediaSession
handles it and Auxio could not care less, and sometimes Auxio actually
needs to handle it. As a result, the idea of being able to disable
headset focus is more or less moot because it will only apply to some
devices and not others.

On the other end, the way Auxio automatically begins playback once a
headset is plugged in is also quite weird. It only works on wired
headsets, and when it does, it overrides all other apps that might
also be playing audio. It's not to say that it's a bad feature, but
it's also one that I don't want to make the defualt. Auxio should
still play along within the confines of Android's expectations, after
all.

Replacing the existing "Headset focus" setting with a new "Headset
autoplay" setting solves both of these issues, as it prevents a
mis-guided disabling of the setting that doesn't actually disable
the feature and it relegates the quirky autoplay behavior to an
setting not enabled by default.
2022-03-05 20:34:12 -07:00
OxygenCobalt
6d003c308b
playback: fix headset focus autoplay issue
Fix an issue where headset focus would result in unexpected playback
whenever the service started.

AudioManager.ACTION_HEADSET_PLUG seems to always fire when the initial
BroadcastReceiver is set up, which results in a weird bug where if a
wired headset is connected while PlaybackService is started, playback
will start immediately, which was not user friendly.

I fear that this may result in an edge case that results in headset
focus not firing in an unrelated situation, which in that case I would
be forced to remove headset autoplay entirely (or at least relegate it
to a quirk option).
2022-03-03 18:47:55 -07:00
OxygenCobalt
1e39ceb9fc
music: add more failsafes to loading process
Add even more checks and guards to the music loading process to ensure
proper metadata loading.

Auxio has always had issues handling track numbers and years, mostly
with ensuring their validity. This change resolves them by more or less
surrounding them with gobs of null-checks and fallible parsing
routines, which should help avoid frustrating bugs and crashes with
metadata in the future.

Resolves #88.
Resolves #84.
2022-03-01 19:52:28 -07:00
OxygenCobalt
dbe0bd1bb3
ui: revert list item changes
Revert the removal of the song/artist values from list items for now.

The current plan of removing extraneous values from songs and albums
only works if I add multi-select and a dedicated menu button, but that
is still in the air, and in general I want feedback before I go ahead.
Aside from reverting the previous changes, this actually standardizes
all item descriptions under a single bullet point formatting system,
instead of the mix of commas and bullet points that existed beforehand.
2022-02-28 19:27:57 -07:00
OxygenCobalt
a408cc629d
strings: remove redundant spanish translation
Remove the strings.xml.old file in the spanish translations.

This was generated from vim when #87 was created. It's redundant, so
remove it.
2022-02-28 19:01:12 -07:00
n-berenice
88f815ed9f Redone from scratch
Previous file was too incomplete and had too many mistakes in order to be fixed, fully redone.
2022-02-28 22:12:56 -03:00
OxygenCobalt
d7babcba71
ui: remove album name from song items
Remove the album name from the main song item in favor of a duration
value.

Auxio has traditionally used "Artist . Album" for song items. However,
this had some shortcomings:
1. The way the artist and album names are packed probably results in
truncation on small screens, which I doubt is very helpful.
2. All other items in Auxio have only one specific "subject" per line,
which makes the song items a bit of an outlier since it has two (the
artist and the album)
3. The empty space available could be used for another UI element,
such as a duration or maybe a menu button in the future.

For consistency, this also removes the song count from all album items
as well.
2022-02-25 08:12:26 -07:00
OxygenCobalt
c5be39774a
ui: remove memberBinding [#80]
Remove all usages of memberBinding from the app.

For some reason, certain devices running Android 10 and lower will
have a lifecycle race condition whenever the theme is mis-matched.
This ends up resulting in an invalid state whenever memberBinder was
used. Since we can't replace memberBinder with a better solution,
just dumpster the whole thing. This platform is so god damn broken,
jesus christ.

Resolves #80.
2022-02-24 19:31:48 -07:00
OxygenCobalt
fc4c7714a2
deps: upgrade
Wheeeeeee
ExoPlayer -> 2.17.0
Coil -> 2.0.0-alpha09
Ktlint -> 0.44.0
2022-02-24 15:17:31 -07:00
OxygenCobalt
9171f9a3b4
coil: make mosaics use squareframetransform
Change createMosaic to use SquareFrameTransform.

This should help fix a theoretical bug where non-1:1 album covers will
be oddly stretched in a generated mosaic, as all album covers will be
forcefully cropped to a 1:1 ratio.
2022-02-24 14:58:59 -07:00
OxygenCobalt
61dbfe3185
coil: make rounded images more nuanced
Create a custom view for rounded images, making them more nuanced in
the process.

The previous method for applying rounded images in-app was generally
clunky and fragile. Introduce a new custom view that actually takes a
cornerRadius attribute from the ImageView itself that then applies it
whenever the user enables the setting. This also allows rounded images
to be more nuanced, as typical 8dp elevation can be used for small
views and a more fitting 16dp radius can be used for large views.
2022-02-23 17:42:34 -07:00
OxygenCobalt
280b582efa
home: rework fab adaptiveness
Rework how the fab's adaptive functionality works.

Handle fab adaptiveness by using a style instead of a fully custom
view. This helps eliminate a usage of private resources.
2022-02-23 16:13:59 -07:00
OxygenCobalt
87035805d2
ui: general cleanup
Clean up a bunch of UI issues that have accumulated.
2022-02-23 15:26:40 -07:00
OxygenCobalt
22258a3e6b
style: add disabled state to switches
Add a disabled state to the M3 switches.
2022-02-22 17:44:56 -07:00
OxygenCobalt
35b75b5f81
music: rename BaseModel to Item
Rename BaseModel to Item to make the meaning of it clearer.
2022-02-22 17:44:36 -07:00
OxygenCobalt
3aaa2ab0e0
all: rework logging
Rework logging to be clearer and more standardized.

Rework all usages of lossing to follow a single unified style,
introducing a new "warn" option alongside this.
2022-02-22 17:24:51 -07:00
OxygenCobalt
e1dbe6c40c
coil: force all images to a 1:1 aspect ratio
Crop all images to a 1:1 aspect ratio.

Sometimes cover art will not be a square. I never realized this because
all covers in my music library are square. This led to many strange bugs
that I would rather avoid, so create a new transformation that crops the
image to a 1:1 aspect ratio.

The reason why we use a transformation is that it won't be dependent on
the actual state of the ImageView, which is what would happen if we
used ScaleType.CENTER_CROP. In the case that we use a very weird hacky
ImageView like in the widgets, doing such would result in any cropping
not actually working correctly. It's better to do it in the
Transformation stage simply to ensure consistency.
2022-02-21 20:00:30 -07:00
OxygenCobalt
6fc3c9374c
style: rework dynamic colors
Allow the material library to handle dynamic colors.

Turns out I was mis-understanding how DynamicColor themes were meant to
be used by the material library. Turns out you can just inherit from it
and it will work perfectly fine. Refactor the V31 styles to remove our
insane shims and finally fix the slapdash dynamic color usage across
the main theme and widgets.
2022-02-21 17:07:06 -07:00
OxygenCobalt
9304e58190
playback: rework playback icon visibility
Add a circular indicator to playback icons.

Sometimes it can be too difficult to tell apart the active and inactive
states of the shuffle/loop icons. However, there is really no good way
to improve the contrast on these icons without some kind of muddled UX
fragmentation, or god-awful design. Try to settle on the okay-est
version, which is to use colorPrimary with a dot indicator on views we
control, and use a more muddled semi-transparent icon on views we don't
control, like notifications and widgets.
2022-02-21 16:36:08 -07:00
OxygenCobalt
2a74ff906c
style: enable drop shadows before api 28
Re-enable drop shadows on the playback bar and queue items on API 27
and lower. This is mostly to make Auxio line up with the M3 styles as
a whole.
2022-02-19 11:06:10 -07:00
OxygenCobalt
f5478018c5
deps: upgrade deps
Round and round
Lifecycle -> 2.4.1
Media -> 1.5.0
Navigation -> 2.4.1// TODO: Downgrade back to 2.4.1 when it is out
2022-02-19 10:13:26 -07:00
OxygenCobalt
ddc6428455
Version 2.2.1
Ready for version 2.2.1 of Auxio.
2022-02-18 19:06:00 -07:00
OxygenCobalt
d4513293a7
all: cleanup
General app cleanup.
2022-02-18 19:03:25 -07:00
OxygenCobalt
83dc6cd4c9
app: expose file opening intents better [#78]
Copy-paste some extra fields onto the file opening intent filter as to
[hopefully] get Auxio to be recognized by OEM skins better.

Some OEM skins don't seem to do a basic query for an app that matches
the APP_MUSIC category. Instead, they do some insane query for apps
that match this specific file intent structure that Auxio does not fit
for whatever reason. Try to graft some manifest features from the MPV
android app to make Auxio correctly expose this. I have no idea if this
will actually do anything.
2022-02-15 19:27:44 -07:00
OxygenCobalt
5b57d77d02
playback: disable audio focus setting on api 31
Disable the ability to customize audio focus on Android 12 and up.

Android 12 automatically regulates audio streams even further than it
did in previous versions, to the point where the audio focus setting
no longer makes sense on that version. I may extend the removal to all
versions in the future.
2022-02-15 06:33:21 -07:00
OxygenCobalt
30ad7f99db
playback: fix headset focus bug
Fix an issue where headset focus would restart playback unexpectedly.

At some point during the broadcast refactor, I accidentally switched
the values of CONNECTED and DISCONNECTED when handling
AudioManager.ACTION_HEADSET_PLUG. This resulted in playback starting
for no reason in some situations.
2022-02-14 19:46:04 -07:00
OxygenCobalt
ec358a13e3
style: apply body typography
Use body typography in more places, reworking the letter spacing as to
make it more pleasent to use with the inter typeface.

This should hopefully be the last time I fret over typography.
Everything should line up in the way desired by M3.
2022-02-13 15:39:34 -07:00
OxygenCobalt
f377e144dd
style: remove elevation from toolbars
Remove the elevation component from all toolbars and the bottom bar.

Material3 states that top and bottom app bars should not cast a drop
shadow. Auxio ignored this and used one anyway. This largely stemmed
from incorrect use of the AppBarLayout styles, which were mostly just
incorrect M2 styles with a new background plastered over. Fix this
by creating a new style that inherits the proper M3 styles and then
using that on all AppBarLayout instances in the app.
2022-02-10 17:34:03 -07:00
OxygenCobalt
04bec3161f
music: modify model configuration
Do a couple things to the music models:
1. Make the genre field non-nullable. This is because I beleive I've
largely eliminated the genre bugs in previous versions and future ones
can be caught with a crash screen I plan to add.
2. Make the initial album grouping process use hashCode instead of a
pair of names. This just helps with loading speed in general, albeit I
am slightly worried that it may result in improper grouping if some
edge case appears.
2022-02-08 06:56:49 -07:00
OxygenCobalt
f4217a337a
style: tweak body typography
Apply body typography in new places in the app.

For awhile, Body and Title typography were used interchangeably, as
they occupy the same text size range. This commit defines the Body
text as to be used for one-line widgets or tertiary widgets, while
the Title text is defined to be used for multi-line or heading widgets.
2022-02-08 06:23:43 -07:00
OxygenCobalt
4a326cc4ff
all: fix sloppy code
Fix some dumb and sloppy code that I made in the rush to complete
2.2.0.
2022-02-07 20:08:18 -07:00
Clyde
245e0f5dc1
Update strings.xml
Update zh-rCN translations accordingly with the latest `strings.xml`.
2022-02-07 06:22:29 -07:00
Clyde
0a9c7124db
Update strings.xml
Update zh-rCN translations accordingly with the latest `strings.xml`.
2022-02-07 12:26:22 +08:00
OxygenCobalt
4d384f4cbd
Version 2.2.0
Ready for version 2.2.0 of Auxio.
2022-02-06 19:23:54 -07:00
OxygenCobalt
a51f1aa5b9
pref: fix application of m3 switches
Fix an issue with M3SwitchPreference where the switch would not update
properly.

When reacing M3SwitchPreference, I wanted to make an optimization
regarding updating the switch to M3, so I decided to make the
preference check if they have already applied the switch, and then
ignore it if that's the case. However, I ended up forgetting that
ViewHolders tend to need to be re-bound, which resulted in this
optimization leading to inconsistent application of the M3 switches.
Fix this by removing that optimization.
2022-02-06 19:20:29 -07:00
OxygenCobalt
d9e2d7f07a
docs: rework contribution info
Update the contribution information and templates.

The contribution information and templates were growing a bit stale,
given that they haven't gotten a refresh since ~1.3.0. This commit
reworks them to be more thorough and straightfoward.
2022-02-06 14:33:36 -07:00
OxygenCobalt
470187422a
docs: add changelog
Add a CHANGELOG document that keeps track of the past and current
release notes.

Making all of our releases rely on GitHub to keep track of them is not
really a good idea, so this document serves as a record of past release
changelogs just as a pre-caution. It also allows a live preview of the
next version whenever something is changed.
2022-02-06 14:01:03 -07:00
OxygenCobalt
8e0d27696d
detail: improve track number handling
Improve the way track numbers are handled in the album detail view.

Previously, Auxio would show track numbers by simplying stringifying
the integer and then showing it in a TextView. This was problematic for
two reasons:
- Numerics from other languages like Arabic would not be respected
- Invalid track numbers [e.g 0] would be shown regardless of the
situation.

This commit fixes that by placing all track numbers through a format
string first, and showing a generic song icon instead of a number
whenever the track number is 0.
2022-02-06 11:19:50 -07:00
OxygenCobalt
4b919b121a
util: rework context utilities
Completely rework the Context extensions for resources.

Previously, Auxio has used a strange hodge-podge of context extensions
and verbose code to get resources. Fix this by unifying most of the
resource accesses under a single, unified set of extensions. The only
ones excluded for now is the getString call, as that is used in far too
many places to effectively replace.
2022-02-06 10:45:40 -07:00
OxygenCobalt
bd099aee7b
deps: upgrade
Like a while loop with no escape
Navigation -> 2.5.0-alpha01 [workaround for AGP 7.1]
Preference -> 1.2.0
Fragment -> 1.4.1
2022-02-06 09:08:10 -07:00
OxygenCobalt
0209e526e1
all: general cleanup
Do some general code cleanup.
2022-02-06 09:01:51 -07:00
OxygenCobalt
4d22b99577
playback: re-add index correction
Re-add index correction, albeit with a new system that accomodates the
single queue mechanism.

The issue with using the previous queue mechanism for the single queue
was that it risked using the index of an incorrect duplicate song, as
the search would always start at index 0. Fix this by implementing a
sort of "wobbly" search that starts at the current index and moves back
and forth, checking the closest items first and the furthest items
last.
2022-02-05 11:40:45 -07:00
OxygenCobalt
685d3af12f
settings: remove 1.4.0 compatibility
Remove 1.4.0 setting migrations.

It's been nearly a year. Everyone should have migrated by now.
2022-02-05 11:01:03 -07:00
OxygenCobalt
b047b50411
settings: add option to force-reload the app
Add an option to force-reload the app.

Currently, Auxio will load music once and then never re-load it. This
is a really decision I made early on and now regret completely. The
only way to remedy this properly is to create an automatic rescanning
system, but that is a major technical undertaking that I want to save
for later.

Resolves #71.
2022-02-05 10:30:03 -07:00
OxygenCobalt
0a216def1b
strings: tweak arabic translations
Fix the plurals and audit RTL usages in the arabic translations.
2022-02-05 10:06:13 -07:00
OxygenCobalt
4774fbaa4e
Merge branch 'dev' of https://github.com/hasanpasha/Auxio into arabic-dev 2022-02-05 09:49:52 -07:00
OxygenCobalt
92ac7d9a9d
strings: rework russian translations
Improve the russian translations for this app.

These translations were proposed by lisiczka43 with the following
rationale:

"[use] less literal translations, [use] shorter wording to fit into UI
elements,  [correct] mistranslations, [improve] consistency of
terminolgy, [enforce] strict ё, [add] missing new strings"

Apparently the previous russian translations were quite Amateurish.
This should make them better.
2022-02-05 09:45:18 -07:00
OxygenCobalt
20245db261
style: update inter
Update the inter font to v3.19.
2022-02-05 09:23:37 -07:00
OxygenCobalt
b121b6428d
music: refactor music grouping
Completely refactor the way music is grouped up into artists and
albums.

The issue with previous attempts at implementing better artist
management was the reliance on MediaStore IDs in many parts of the
program. Dumpster this by merging the hash and ID values into a
single field that is garunteed to be unique enough. This allows songs
to be adequately grouped into case-insensitive artists while also
deduplicating albums that may have been split my MediaStore due to
heterogeneous formats.

Resolves #66.
2022-02-04 20:55:48 -07:00
hasanpasha
bdaa0519d8 add arabic tranlation 2022-02-04 14:49:54 +03:00
OxygenCobalt
6e00fd1129
music: merge duplicate albums [#66]
Move all duplicate checking to the album creation stage, adding a new
check for duplicate albums.

Album names can be similarly duplicated as artist names, most often
when one has an album consisting of multiple differing file formats.
This commit fixes that by grouping albums up by their ID as usual,
but then merging together albums that have the same (lowercase) album
name and (lowercase) artist name.
2022-02-03 20:05:20 -07:00
OxygenCobalt
433d623f14
strings: fix improper usage of plurals
Use a proper composition of the "many" and "other" fields in the plural
fields of specific languages.

In the french/czech plural configuration, both "many" and "other" are
used for string fields. The lint does not make this obvious, so in
d7f34e6 I ended up switching the "other" field to "many". This resulted
in some devices on those languages crashing. To fix this, we define
the "many" and "other" fields with the same value to avoid a crash.

Resolves #69.
2022-02-02 07:17:28 -07:00
OxygenCobalt
3c9ffd5946
style: re-add inter
Re-add the inter typeface.

It's not good design to have two similar typefaces, so I may as well
revert back to Inter once and for all. It's too good of a typeface
compared to the mess of Roboto and other native fonts.
2022-01-30 20:31:40 -07:00
OxygenCobalt
9514f17bc7
music: group artists case-insensitively [#66]
Group up album artists case-insensitively.

Music files from the same artist may format the artist differently, such as being
in uppercase/lowercase forms. If we have already built an artist that has a
functionally identical name to another artist, then simply merge the artists
instead of keeping them separate.
2022-01-30 17:29:42 -07:00
OxygenCobalt
50a2305f63
music: respect individual artist names [#66]
Modify the music loader to use the normal artist name when using song
titles while still retaining album artist functionality.

Oftentimes music files will be tagged as to use the artist tag to
specify performers, collaborators, and others, and then use the album
artist tag to group them up into a single artist. Previously, Auxio
would only use the album artist tag, which flattened the collaborator
information out for consistency. Resolve this by implementing a sort
of "resolved artist name" for songs that is used in the UI and nowhere
else. This seems to work well, but at the same time further ruins the
API surface for handling music objects. An acceptable price to pay
for a better UX.
2022-01-30 16:46:11 -07:00
OxygenCobalt
50f6f8f348
style: migrate body type to roboto
Migrate to the native roboto typeface on body elements.

Migrating to the native typeface saves on APK size, contributes to a
more native look and feel, and create a more compact UI for smaller
devices. Inter Semibold remains as the "Flair" type that distinguishes
Auxio from other apps.
2022-01-29 10:25:35 -07:00
OxygenCobalt
44c53d96f3
Version 2.1.0
Ready for version 2.1.0 of Auxio.
2022-01-28 19:22:18 -07:00
OxygenCobalt
d540773664
deps: fix aar issues
Fix insane build issues with the new aar system through means that I
really don't understand.
2022-01-27 19:41:25 -07:00
OxygenCobalt
5b5aa24f5c
deps: use aar
Bundle our custom ExoPlayer components into aar instead of directly
depending on the project. This just makes things far better regarding
ease of use and reproducible builds.
2022-01-27 15:05:45 -07:00
OxygenCobalt
f2e4a3a369
deps: move exoplayer to app
Move ExoPlayer from a top-level directory to srclibs.
2022-01-26 19:56:38 -07:00
OxygenCobalt
d7f34e6b94
all: migrate to api 32
Actually migrate to API 32 [Android 12L], co-inciding with the upgrade
of my studio install and the android gradle plugin. Alongside this, add
a bunch of fixes for lints that the new studio picked up.
2022-01-25 18:59:16 -07:00
OxygenCobalt
317b12579c
playback: expose media button receiver
Expose a custom MediaButtonReceiver that handles the media button
intent. This is not because I wanted to implement this. Some apps
like gadgetbridge just blindly query ACTION_MEDIA_BUTTON instead of
relying on the more modern MediaController API, which I expected
most apps would use instead.

Resolves #62.
2022-01-25 17:20:26 -07:00
OxygenCobalt
c9f789e388
revert "style: migrate to roboto"
I want to hold off with this migration actually. I feel like it's too
jarring of a change to be included as of right now.
This reverts commit 50170f202e.
2022-01-23 12:42:49 -07:00
OxygenCobalt
3de5fecf4a
coil: gracefully handle file handling failures
Wrap the basic fetchArt call in a try statement to prevent exceptions
from being unable to open a file from propagating outwards. This allows
us to safely degrade when creating mosaics.
2022-01-23 11:30:26 -07:00
OxygenCobalt
b04611c3be
playback: fix media intent detection [#62]
Some apps query for media apps by checking for apps that have a
BroadcastReciever that handles the ACTION_MEDIA_BUTTON intent. However,
Auxio does not have a custom media button reciever, instead relying on
the androidx media button reciever. This resulted in Auxio not showing
up in apps like GadgetBridge. Fix this by exposing the androidx media
button reciever in the manifest, which allows this app to be detected.
2022-01-23 11:04:27 -07:00
OxygenCobalt
c98d131316
style: implement m3 switches
Implement a facimile of the new Material 3/You switches in the settings
menu. There's no defined spec for this yet, so I just shamelessly ripped
the implementation from Doodle.
2022-01-23 10:56:34 -07:00
OxygenCobalt
50170f202e
style: migrate to roboto
Dumpster Inter in favor of Roboto. This is mostly for three reasons:
1. Reduces the insane typography setup that Auxio uses
2. Reduces total app size since .ttf files are pretty large and the
dynamic fonts feature was proprietary.
3. Creates a more cohesive look and feel given that nearly every
android app also uses Roboto.
2022-01-23 10:17:47 -07:00
OxygenCobalt
eadf4cc86d
detail: extend smart queue disabling to detail
Add the queue disabling functionality from 47fca78 to the album detail
fragment as well.
2022-01-21 19:59:00 -07:00
Clyde
c8f1fd1094
Update strings.xml
Complicated Simplified Chinese localization accroding to the latest strings from `/app/src/main/res/values/strings.xml`.
2022-01-21 15:00:22 +08:00
OxygenCobalt
47fca7819f
ui: disable queue adding if no playback
If theres no playback going on, disable the play next/add to queue
options, as they will have no effect. This mostly for QoL purposes.
2022-01-19 06:52:05 -07:00
OxygenCobalt
e5901fa9e2
playback: use gesture insets in playback layout
When using gesture navigation, swipe up events might conflict with the
slide up behavior of the playback layout. To fix this, inset the
playback bar based on the gesture insets instead of the system bar
insets.
2022-01-18 19:51:06 -07:00
OxygenCobalt
e4f2906767
deps: upgrade deps
Material -> 1.5.0 [Finally]
ConstraintLayout -> 2.1.3
2022-01-17 16:49:20 -07:00
OxygenCobalt
95e8b06f19
style: extend edge-to-edge on all versions
Extend edge-to-edge to versions below Android Oreo. This is done
through tinting the navigation bar colors on those versions,
circumventing the coloring issue.
2022-01-15 20:12:23 -07:00
OxygenCobalt
4dcc3c3b69
playback: fix queue adding with one-song queues
Fix an issue where with queues of one-song, adding another song with
"Play next" results in it going behind the current song. This stemmed
from a fix for a crash with empty queues, so instead of doing some
insane min/max logic we just check if the queue is empty and just don't
add the item if it is. It will only get overwritten anyway.
2022-01-13 20:24:02 -07:00
OxygenCobalt
ddf2757cb6
playback: add dynamic replaygain mode [#7]
Add a "Dynamic" replaygain mode inspired by the FooBar2000 plugin. This
will automatically determine whether the playback is in an album or not
and use the album gain or track gain accordingly.
2022-01-13 20:15:22 -07:00
OxygenCobalt
5359c819bd
prebuild: reformat
Reformat the prebuild file, which apparently decided to format
themselves with indents instead of spaces. Fun.
2022-01-09 19:00:55 -07:00
OxygenCobalt
2f190f1e0b
playback: use custom exoplayer
Use a custom ExoPlayer fork with the FLAC extension enabled. This
greatly improves the listening experience, as it enables metadata
support on OGG files and FLAC files to be played below API 27.
2022-01-09 12:27:18 -07:00
OxygenCobalt
5e3569d173
all: general cleanup
General cleanup. About to do another major playback change, so
push these changes now so they are not changed later.
2022-01-09 08:22:14 -07:00
OxygenCobalt
d4904136c0
search: open kb only when created
Make it so that the keyboard is only opened on the search view when
it's initially created instead of when it's loaded from the
backstack. This is just nice for overall UX.
2022-01-08 09:46:50 -07:00
OxygenCobalt
049b279e1f
playback: add playing from indicator to fragment
Add the "Playing From" indicator that used be on the queue to the
main playback view.
2022-01-08 09:26:26 -07:00
OxygenCobalt
13730c303c
util: fix number issues
Fix issues where invalid durations and years would not be aliased to
readable values.
2022-01-08 08:59:11 -07:00
OxygenCobalt
e099d1c38c
playback: switch audioreactor to callback system
Switch AudioReactor to a callback-based system. This makes updating the
volume much faster, as it's no longer reliant on a 500ms polling
interval.
2022-01-07 16:00:37 -07:00
OxygenCobalt
70ac37ca8a
playback: fix seekbar crash
Fix an edge case where if the total duration ends up being zero,
the app will end up crashing at the playback screen. Thank SeekBar
for deciding that it's perfectly okay to crash instead of decay
gracefully when valueTo is 0.
2022-01-07 14:10:45 -07:00
OxygenCobalt
9a7571a59a
playback: add replaygain setting
Add a settings option for ReplayGain.
2022-01-06 17:27:45 -07:00
OxygenCobalt
dc43edd6cb
deps: upgrate
Like a while loop with no escape.
Platform -> API 32
Coil -> 2.0.0-alpha06
2022-01-06 12:34:34 -07:00
OxygenCobalt
8ad44d898c
playback: refactor audio focus
Move all replaygain functionality into AudioReactor, alongside moving
all volume management into the class. This allows volume state to stay
sane throughout.
2022-01-06 12:21:32 -07:00
OxygenCobalt
357184dd8d
playback: minor replaygain fixes
Fix issues with the new replaygain system in the ducking system and
when there is no metadata to parse.
2022-01-06 11:06:42 -07:00
OxygenCobalt
d419a4230d
playback: add replaygain support
Add ReplayGain support leveraging ExoPlayer. This was a widely
requested feature, but since I thought I needed MediaStore to
expose the fields, I never considered it. Turns out ExoPlayer
automatically exposes metadata for ID3v2 and Xiph tags, so we
can implement it just fine.

Resolves #7.
2022-01-06 10:47:06 -07:00
OxygenCobalt
43e01e839d
playback: misc changes
I just spent 5 days trying to implement gapless playback using
ExoPlayer and Hopium. That's 5 days I'm never getting back. Heres
what I did add in the process though.
2021-12-27 18:34:43 -07:00
OxygenCobalt
25dd276bd8
playback: use single-queue system
Switch auxio to a single-queue system. "Play next" adds songs to the top
of the queue, similar to before, and then "Add to queue" adds songs to
the bottom of the queue. This enables many more enhancements to be made
to the playback experience, at the cost of a feature I preferred.

Resolves #44.
2021-12-22 16:37:07 -07:00
OxygenCobalt
b92b08f8ab
home: make fab adaptive
Use a large FAB on tablet layouts, as in general it's okay to make
those elements bigger on large touchscreens.
2021-12-18 11:15:28 -07:00
OxygenCobalt
2d3fc47d7c
main: band-aid split screen mode layouts
Split screen layouts in android are completely borked. You can
resize Auxio down to the point where the UI is completely
unusable, and there is NO WAY TO SET A MINIMUM HEIGHT. This is
also not to mention that smallestScreenWidthDp is completely
busted too and still uses the size of the whole screen! Just
band-aid the first issue so that when the layout becomes so
small as to result in a messed up UI, just show a splash that
says that the app can't work at the specific window size.
2021-12-17 17:00:19 -07:00
OxygenCobalt
bae997018d
playback: add larger layout for playback bar
For tablets, use a larger playback bar that shows information more
predominantly.
2021-12-17 15:50:13 -07:00
OxygenCobalt
5a9ac4bec9
deps: upgrade
Round and round:

Coil -> 2.0.0-alpha05
Material -> 1.5.0-rc01
Kotlin -> 1.6.10
2021-12-17 14:45:40 -07:00
OxygenCobalt
284108678b
detail: add layout for small screens
Add a layout for especially small screens so that they do not have to
scroll as much.
2021-12-17 14:32:14 -07:00
OxygenCobalt
8e1da1bfc7
home: make tabs adaptive
Make tabs on the home page adapt to screen configuration changes, using
only icons when the width is small and icons + text when the width
is large.
2021-12-17 14:32:14 -07:00
Vladimir Kosolapov
7b10bf3a34
Updated localization file for Russian language 2021-12-14 22:00:39 +03:00
OxygenCobalt
6b355d6416
theme: re-add black theme on android 12
Re-add the black theme on Android 12. It still has use, unlike the
other theme options made obsolete by dynamic colors.
2021-12-06 06:22:13 -07:00
OxygenCobalt
4b7fa7415c
coil: change album cover rounding method
Forgot that coil's RoundedCornerTransformation is dependent on the
resolution of the image, resulting in inconsistent rounded corners.
Fix this by just doing the plain clipToOutline to round album covers.
2021-12-05 20:30:35 -07:00
OxygenCobalt
637bcccd51
music: clean up loader implementation
Clean up the music loader implementation, removing pre-sorting to make
it a bit more efficent. Instead, sorting is done on indiviual
components.
2021-12-05 17:56:21 -07:00
OxygenCobalt
cde3a99f4d
playback: fade out content as view slides
Re-add the ability for content to fade out as the playback or queue
view slides up. This also migrates the queue slide animation to also
fade out content, which allows for the stylistic cohesion I desire.
2021-11-27 11:49:06 -07:00
OxygenCobalt
e397cf1540
coil: add option to round album covers
Add an option to round album covers for people who might want more
visual cohesion with apps that have completely drunken the "Round
Everything!" kool-aid. Covers will still be hard-edged by default.
2021-11-26 14:15:26 -07:00
OxygenCobalt
14c9b81532
coil: fix mosaics on odd image sizes
Round the image sizes we use for our mosaics so that they are even.
Previously we didn't, and that resulted in bad mosaics being created.
2021-11-26 11:41:01 -07:00
OxygenCobalt
c0b2dee3ff
coil: use image size when creating mosaics
Use the image size provided by coil when creating our mosaics. This
allows both better transformations and better-quality mosaics in the
detail view itself.
2021-11-26 11:12:01 -07:00
OxygenCobalt
2ff2cd8cf4
Version 2.0.1
Ready for version 2.0.1 of Auxio.
2021-11-26 10:27:38 -07:00
OxygenCobalt
949d71dbd1
playback: actually fix controls not working
Turns out playback controls wouldn't actually work because the view
would detach but not the actual fragment, resulting in onCreateView
never being called and the entire system falling apart. This fixes
it by just giving PlaybackLayout the viewmodel instance it needs.
I'll need to release a hotfix for this issue since this is really
easy the trigger and really hard to fix unless you know why it
occurs. Android lifecycles suck so much.
2021-11-26 10:17:46 -07:00
OxygenCobalt
35eb07410d
playback: gracefully handle multi-window mode
Add a new layout that handles the edge-case where splitscreen is used
on a sufficently small device. Previously it would result in a squashed
landscape layout, but now it will show a layout that should fit fine in
most situations.
2021-11-26 09:54:59 -07:00
OxygenCobalt
eaac1ad1a8
playback: be safer with callbacks
Add an executePendingBindings call to PlaybackBarView's databinding.
Just in case.
2021-11-26 09:27:10 -07:00
OxygenCobalt
ec8f538cf0
docs: update metadata
Update metadata in preperation for 2.0.0.
2021-11-26 08:56:09 -07:00
OxygenCobalt
0fe73b5b18
docs: re-write architecture
Create a new ARCHITECTURE document that is up to date with Auxio 2.0.0.
2021-11-25 19:41:28 -07:00
OxygenCobalt
2be49b0042
playback: remove playback subtitle
Remove the playback subtitle for now. I'm considering re-adding it
eventually, but I want to make it so that the UI is less cluttered.
2021-11-25 14:22:47 -07:00
OxygenCobalt
c296321885
home: remove title gradient
Remove the title gradient. It did not work out that well actually.
2021-11-25 12:27:46 -07:00
OxygenCobalt
61624352e4
all: apply finishing touches
Apply the finishing touches for 2.0.0, mostly documentation but also
some odds and ends.
2021-11-25 12:02:10 -07:00
OxygenCobalt
56ded96b10
playback: use layer background in playback panel
Use a layered background in the playback panel, with a colorSurface layer
behind the elevated MaterialShapeDrawable. This is for safety, as there
might be cases where a fully transparent MaterialShapeDrawable results in
unexpected behavior.
2021-11-25 10:10:07 -07:00
OxygenCobalt
2ae22500d3
main: add proper backwards navigation
Move the backwards navigation hook from DetailFragment to MainFragment
and modify it so that it collapses the playback panel when one navs
back.
2021-11-25 09:48:06 -07:00
OxygenCobalt
805035f0d8
playback: improve compact -> full transition
Improve the way the compact playback view transforms into the full
playback view by splitting their view animations in two. This makes
the transition more akin to the Android 12 notification menu, which
due to the nature of how I'm fading views really does make it more
user friendly. Also re-add the "Now Playing" title and a new subtitle
displaying the currently playing artist.
2021-11-25 09:04:22 -07:00
OxygenCobalt
4ccaa7c4bb
all: cleanup code
Clean up code and fits a bunch of miscellaneous issues.
2021-11-24 20:22:30 -07:00
OxygenCobalt
6b54d4b783
playback: fix disabling on playback layout
Fix my haphazard disabling implementation that I copied from umano
without realizing that it would actually break everything.
2021-11-24 15:49:58 -07:00
OxygenCobalt
cfc7352571
playback: add slide up behavior
Completely refactor PlaybackBarLayout into PlaybackLayout, which now
not only handles the bar behavior but also allows for one to slide
up the bar layout into the full playback layout. This was largely
adapted from umano's AndroidSlidingUpPanel, albeit heavily minified
and mixed with the previous window inset tricks of the previous layout.
There are still some tweaks to be made, but this implementation seems
to be really good.
2021-11-24 15:13:34 -07:00
OxygenCobalt
06a7d8258b
sort: refactor sorting
Refactor sorting again to support free-floating ascending/descending
values on every single sort mode. This enables greater freedom in how
users can sort their music and allows me to finally get rid of the
old legacy sematic sorting modes that chose their ascending/decending
order depending on how they wanted it.
2021-11-21 15:45:20 -07:00
OxygenCobalt
e697908a2f
detail: update layouts
Update the detail layouts to work better on tablets and be more
consistent overall.
2021-11-20 17:03:21 -07:00
OxygenCobalt
c350576f21
ui: make list spans use exact sizing
Make list spans use exact sizing.
2021-11-20 10:54:24 -07:00
OxygenCobalt
4475d4a5cc
playback: update tablet layouts
Use proper exact-size layouts for the tablet views. This also adds a
new compact view that shows more controls for landscape/tablet layouts.
2021-11-20 10:44:40 -07:00
OxygenCobalt
58c2681f72
widget: change default size
Make the default widget size 3x2 again. This is because the UX is
generally nicer if the smaller widget is used as the default and
because the small widget is now no longer text-only and ugly.
2021-11-20 09:53:10 -07:00
OxygenCobalt
0e3ffb973b
coil: completely refactor image loading
Upgrade to coil 2.0.0 and completely refactor the usage of coil to work
with the new library structure. This also fixes the issue where error
icons will just re-appear due to blocking calls. I had to add a fix on
my end and also use the new caching system in coil 2.0.0.
2021-11-20 09:00:23 -07:00
OxygenCobalt
e3f4a6fefa
widgets: fix minor issues
Fix problems with weird margins in the small/wide widgets and change
the initial layout from widget_medium to widget_default.

The latter is nice, as it allows for more cohesion between the default
state and the "unhooked" state that's shown when the phone boots.
2021-11-16 16:48:40 -07:00
OxygenCobalt
71b15a3a6a
coil: disable exoplayer loading
Disable exoplayer loading since apparently the way I use a blocking
call in the coil coroutine causes it to be uncancellable. This ends
up resulting in errors continuing to apply themselves to whatever
view they were requested from, even if it was an error. Because you
know. Android.
2021-11-16 06:35:05 -07:00
OxygenCobalt
1ea3ddb2e0
coil: update image behavior
Update the image behavior for the following:
1. Use ic_album as the default image for songs and albums this just
looks beter in general.
2. Use a special default drawable for the widget so that it doesn't
look as strange.
3. Generally update the loading process throughout the app
2021-11-14 16:23:25 -07:00
OxygenCobalt
d4fa52ee13
widget: make small/wide widgets stylistic
Update the small/wide widgets to show just the cover art and controls.
This is for two reasons:
1. The old layouts wasted space, which didn't make them look very good
2. I want to add a more Material3-eque "Stylistic" widget option for
the people who want them. Doing this allows me to pack that option into
the widget without having to add a new option.
2021-11-14 09:00:54 -07:00
OxygenCobalt
f66dea9469
accent: rename all light accents to deep accents
The way Material3 uses an initial light accent seeds is...odd. It more
closely resembles deep purple [darker on light mode, lighter on dark
mode] in behavior. Therefore we simply rename the light accents to
this. This does mess up translations a lot, but I'll fix it when I
update the rest of the translations.
2021-11-13 19:16:42 -07:00
OxygenCobalt
c30c0d7fb3
accent: simplify accents
Simplify the accent scheme:
- Light Blue was re-generated to be a weird darker-on-light-mode
lighter-on-dark-mode blue that looked really similar to how blue-grey
turned out. These have been merged into a new color scheme called
deep blue.
- Deep Orange and Red were too similar after being re-generated, so
they have been merged to become a simple red accent.
2021-11-13 16:00:41 -07:00
OxygenCobalt
43b12598fb
styles: redo accents
Recreate all accents AGAIN. This time it's to properly generate secondary
and tertiary colors for these. The results of them vary [some might be
removed since they're too similar to other accents now], but most are
fine and they allow me to properly use these components without inane
bugs.
2021-11-13 11:51:36 -07:00
OxygenCobalt
d732aea1d3
style: improve typography
Improve typography (again) by isolating my weird non-standard text
styles and moving all font usage to the text styles, which allows
me to eliminate a lot of excessive font usages.
2021-11-11 18:53:34 -07:00
OxygenCobalt
032fd2bd40
style: use material in playback view
Use Slider and FloatingActionbutton in the playback view. This is not
because I wanted to, but because there were insane bugs on Lollipop
devices that stemmed from them being unable to load complex selector
resources.
2021-11-11 16:25:56 -07:00
OxygenCobalt
67797d957e
all: cleanup code
Upgrade dependencies, fix deprecation issues, and just clean up code
in general.
2021-11-11 12:19:07 -07:00
OxygenCobalt
8f61d8479a
style: migrate to Material3 text styling
Migrate to 100% Material3 text styling. I had to basically ignore the
intended styling here just to get a sensible design here, which is
"bad" but I do what I want. The only usage of MaterialComponents left
in the project now is the dialog since the new dialog style the worst
thing ever.
2021-11-11 11:48:22 -07:00
OxygenCobalt
63198f8677
style: unify typography
Use Material typography everywhere instead of using a mix of AppCompat
and Material styles. This is still based around MaterialComponents
though, as I'm not fully sure how to wield the new Material3 text
styles yet. This also completely phases out inter bold.
2021-11-09 06:52:02 -07:00
OxygenCobalt
c5fcc45ee9
detail: show name when scrolling
Show the name of the currently shown detail item when scrolling. This
is just UI candy that I've always wanted to add but couldn't due to
CollapsingToolbarLayout being a mess. This addition circumvents that
by simply doing some reflection magic and hooking the alpha of the
toolbar title to the current scroll state, solving the issue.
2021-11-08 19:54:38 -07:00
OxygenCobalt
1b79eb11e0
all: document custom stuff
Document and clean up PlaybackBarLayout and the fast scroll views to an
extent.
2021-11-07 19:02:50 -07:00
OxygenCobalt
8b8d36cf22
playback: improve persistence
Improve playback persistence in the following ways:
1. Shift the boundary of PlaybackStateManager and PlaybackStateDatabase
so that the reading and searching phases both occur at the same time,
which is more efficient.
2. Improve music hashing so that conflicts are minimized [this also
helps the future playlists addition]
3. Generally improve code style
2021-11-04 06:58:43 -06:00
OxygenCobalt
10c45f1492
home: prevent scrollbar from showing on measure
Prevent FastScrollRecyclerView from showing the scrollbar whenever it
would measure itself, which again results in a scroll event for some
reason.
2021-11-03 06:28:00 -06:00
OxygenCobalt
bb5d163f49
home: make fab size fixed
Make the shuffle FAB in the home UI a fixed size so that I don't have
to update padding based off of the screen config.
2021-11-02 19:39:40 -06:00
OxygenCobalt
2700a1d446
coil: ensure front cover correctness
When parsing quality covers using ExoPlayer, ensure that we have a
front cover image instead of some other type of image. This is slower,
but this setting is already slow, so why not just prioritize
correctness.
2021-11-02 07:12:22 -06:00
OxygenCobalt
93cdae2295
playback: fix bad compact view spacing
Fix an issue where the constraints in the playback view were not
actually anchored to the playback bar, resulting in bad spacing.
2021-11-02 06:59:38 -06:00
OxygenCobalt
0a4b07e583
playback: animate playback bar
Make the playback bar animate when it's shown at runtime. This
completes the playback bar layout and honestly it looks amazing.
2021-11-01 20:01:46 -06:00
OxygenCobalt
282933fb37
docs: update docs
Update general user-facing documentation in preperation for 2.0.0.
2021-11-01 17:08:12 -06:00
OxygenCobalt
6a03781750
drawable: fix resources
Turns out the icon commit from earlier was really slapdash and resulted
in the image drawables being lost. Also fix some misc widget issues.
2021-11-01 16:37:07 -06:00
OxygenCobalt
1beefa30a8
drawable: revamp icon
Revamp Auxio's icon entirely. Now it's generally more vibrant [won't
blend into the BG] and will actually has some style to it with an
angular song note instead of the default icon one.
2021-11-01 06:56:26 -06:00
OxygenCobalt
efb800ee6a
playback: fix playback progress bug
Fix an issue where I forgot to call executePendingBindings when
updating progress, resulting in strange behavior with the progress
bar.
2021-10-31 19:54:49 -06:00
OxygenCobalt
b50a23a47f
ui: fix misc issues
Fix miscellanious code style/compat/ui issues.
2021-10-31 16:06:00 -06:00
OxygenCobalt
7c1382db49
playback: add pre-R inset modification
Add the ability for PlaybackBarLayout to modify window insets on
android versions before R.
2021-10-31 14:05:16 -06:00
OxygenCobalt
c1e1329c21
playback: make compact playback ui a view
Change CompactPlaybackFragment into a View. This completely fixes the
issue I tried to band-aid in ae39054. The code is a bit uglier, but
that's tolerable.
2021-10-31 11:14:04 -06:00
OxygenCobalt
ae39054b63
playback: band-aid scroll position confusion
Band-aid an issue where the scroll position of any RecyclerView in a
PlaybackBarLayout would get consfused because while the main view was
present, the fragment was not inflated yet so that it would not show.
This is [kindof] fixed by moving the fragment instantiation to the
view initialization. However, sometimes the fragment might still not
be inflated. The fragment will likely be replaced with a view
eventually.
2021-10-31 10:03:52 -06:00
OxygenCobalt
e779698746
home: remove appbar collapse behavior
Remove the appbar collapse behavior. It's just causing too much bugs
and phones are so big now that the lost space really doesn't matter.
2021-10-30 18:31:57 -06:00
OxygenCobalt
68782fadac
ui: create dedicated playback bar layout
Create a dedicated playback bar layout. This replaces the old janky
observer system with something that handles state better and is just
more elegant.
2021-10-30 18:21:30 -06:00
OxygenCobalt
4f4f6654c0
widgets: re-add 2x2 widgets
Re-add 2x2 widgets. They were originally removed due to strange layouts
in landscape mode, but that has now been fixed with a new "tiny" layout
meant for that specific edge case. Also rename the widget forms to more
sensible names and make the small (previously minimal) widget be
text-only again.
2021-10-28 19:46:00 -06:00
OxygenCobalt
df49e2765f
music: refactor model usage
Refactor the way music models are constructed to achieve the following:
- Add a unified interface for resolving display names of artists
- Disambiguate the role of Header in the music objects
- Eliminate the need to load strings in with a context when creating
Header instances
2021-10-28 19:09:54 -06:00
OxygenCobalt
51ba72d861
music: change loading ux
Move the main loading response code to MainFragment and add a new
method for other objects to be notified of the progress of the
music loading process. There's probably a better way to do this,
but kotlin coroutines are so complex that I don't know where I
would start. This also adds some enhancements, such as the error
message now showing in more parts of the app and SearchFragment
now re-running the query if the MusicStore instance is loaded.
2021-10-27 18:23:15 -06:00
OxygenCobalt
255154c411
home: remove fab scrolling behavior
Remove the ability for the FAB to disappear on scroll, mostly because
the state would not be consistent and it was generally bad UX when
combined with the fast scroller.
2021-10-25 16:38:37 -06:00
OxygenCobalt
fe0c2761c7
music: make musicloader async
Make MusicLoader instantiation fully asynchronous. This implementation
changes a lot about Auxio. For one, the loading screen is now gone.
However, many parts of the app now run under the fact that MusicStore
might not be available. However, I don't think there will be too much bugs
from it. Some more changes will be made to improve this implementation.
2021-10-24 20:01:15 -06:00
OxygenCobalt
926fef4218
widgets: increase minheight
Prevent issues with malformed widget forms on certain devices by
increasing the minimum widget height to 152dp, which is the height
that the minimal widget should take up.
2021-10-24 11:30:10 -06:00
OxygenCobalt
3107464dd2
home: make fab hide when fast scrolling
Hide the FAB when fast scrolling. This is just a UX enhancement.
2021-10-24 11:03:24 -06:00
OxygenCobalt
71480d0299
home: move shuffle control to fab
Instead of having a play/pause header at the top of the song list, use
a FAB instead. This allows people to shuffle all of their songs even if
the songs tab isn't enabled, and it can be tranformed into a create FAB
when playlists are added.
2021-10-24 10:17:55 -06:00
OxygenCobalt
97808ce1c3
home: merge fast scroller
Merge the fast scroller back into Auxio once again, albeit this time
it's AFS instead of IndicatorFastScroll. This not only slims down the
implementation but also allows me to stop the scroller from appearing
every time the home view is recreated. All modifications were noted
and attribution is included to abide by the Apache 2.0 license.
2021-10-23 18:22:50 -06:00
OxygenCobalt
cb6d02fecc
coil: use exoplayer when loading quality covers
Make AlbumArtFetcher fall back to ExoPlayer's metadata system when
fetching covers. This is because some OEMs seem to cripple
MediaMetadataRetriever, which makes relying on that difficult. This
also modifies MosaicFetcher to rely on AlbumArtFetcher.

Resolves #51
2021-10-22 06:40:04 -06:00
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
aa649ebf22
style: remove themed app icons
Turns out android does not play so nice with themed icons. Pixel
launcher will actually cache them and prevent them from updating
every time a theme is updated, making it impractical. Hoipefully
google will make theming icons easier in the future with some kind
of class that follows the style settings. One can hope.
2021-10-19 20:47:16 -06:00
OxygenCobalt
b2f20bec30
style: improve material you usage
My phone has just updated to Android 12, and Auxio looks very out of
place compared to the other themed APIs. Improve the usage of Material
You on the app icon and the widgets so that they line up a bit more.
Can't fully commit though since sometimes the colors can't be
replicated or because they don't look very good.
2021-10-19 20:43:23 -06:00
OxygenCobalt
0537681a86
home: cleanup code
Clean up some bugs and old code from the tab customization
addition.
2021-10-17 20:53:00 -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
a253cfccc4
home: add fast scroller
Add a new fast-scroller to the home view. This required some annoying
hacks to work, but it seems to work pretty well.
2021-10-13 19:49:20 -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
9fc56c1c3d
playback: make queue adding follow sort mode
Make it so that when one adds an album to the queue, it is sorted based
off of the preferred sort mode.
2021-10-11 18:59:53 -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
4b6610d236
playback: make queue reflect sort mode
Re-add the feature where the queue will reflect the current sort mode
now that all sorting is persistent.
2021-10-03 19:02:27 -06:00
OxygenCobalt
f1db0a0162
home: make sorting persisent
Re-add persistent sorting to the home lists.
2021-10-03 18:57:21 -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
e946648b24
home: refactor list management
Return to the "four seperate list fragments" system when it comes to
HomeFragment. This reduces code complexity [no more massive when
chains] and allows me to customize the content of each fragment without
adding special cases.
2021-10-01 19:49:54 -06:00
OxygenCobalt
394327a2c4
deps: upgrade deps
constraintlayout -> 2.1.1
media -> 1.4.2
exoplayer -> 2.15.1
2021-09-29 06:43:43 -06:00
OxygenCobalt
23399be0c3
ui: make tablayout text lowercase
Make the TabLayout text lowercase, which seems to be what Material3
does by default (and it looks better anyway).
2021-09-29 06:21:10 -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
3ab425839c
music: refactor music loading
Refactor music loading to be based off of songs entirely. This reduces
efficency but enables some nices fixes, notably:
1. Album artists now have basic support [You won't be able to see
specific artists, but they won't be fragmented anymore]
2. Samsung devices probably shouldn't get confused about artist names
anymore, like in #40

This should hopefully be the last time I need to refactor this horrible
system. Thank god.
2021-09-26 15:36:24 -06:00
OxygenCobalt
276f991b2b
playback: remove audiofocus duck fadeout
Remove the ducking fadeout code from AudioReactor. This is mostly
because:
1. Android 12 now does this automatically
2. It caused a ton of annoying bugs
2021-09-26 13:43:14 -06:00
OxygenCobalt
7a17282c30
detail: re-add sorting
Re-add sorting to the detail fragments, now with the new system.
2021-09-25 18:12:42 -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
d16c1099bf
settings: remove colorizeNotif option
Remove the notification colorizing option. It's simply causing too many
bugs for it to be usable, especially on Android 11 with it's insane
behavior regarding album cover loading.
2021-09-12 17:46:43 -06:00
OxygenCobalt
bc6bba56fc
widget: update preview
Update the widget preview to reflect the UI tweaks made.
2021-09-12 17:33:48 -06:00
OxygenCobalt
08169b6167
ui: clean up dead code
Clean up the last remaining legacy SortMode remnants. Also reformat all
ViewHolder IDs to be properly unique and sequential.
2021-09-12 17:06:06 -06:00
OxygenCobalt
c9dd3b97a2
ui: fix dialog issues
Remove some more redundant dialog styles and fix an issue where
preference dialogs would crash when the screen is rotated.
2021-09-12 16:13:53 -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
cafd7d8ca6
detail: fix album regressions
Fix the accidental navToItem breakage in AlbumDetailFragment.
2021-09-11 18:10:50 -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
d8c0037b10
detail: fix highlighting issue
Fix an issue where in certain cases a playing item would not be
highlighted if it was being re-played. This was solved my simply
adding a check for if the new item was equal and ignoring it if
it is.
2021-09-06 19:20:57 -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
0433abc5cb
search: normalize unicode strings
Normalize unicode strings when making searches. This allows accented
characters to be treated as typical characters/
2021-09-05 19:42:17 -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
2d24770ab9
Merge pull request #49 from Fjuro/patch-1
Add Czech language
2021-09-01 20:05:36 -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
Fjuro
143397f571
Add Czech language 2021-09-01 19:53:26 +02: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
047b885dca
ui: fix landscape problems
Once again fix annoying issues that arise from the quirks of phone
landscape mode. A lot of these fixes can be re-rolled back into the
edge-to-edge code eventually, but it requires fitsSystemWindows to
be phased out entirely.
2021-08-29 21:00:17 -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
b9658c698b
about: fix link opening not working on android 11
Auxio would usually open links by trying to walk through the app
chooser/default app situation themselves, mostly for compat purposes.
This method was not only broken in Android 11 with the addition of
the QUERY_ALL_PACKAGES permission, but it also seems to be made
obsolete since the android system seems to handle the app choser
pretty well in 11+. As a result, we replace the link opening code on
that version with a plain startActivity call and keep the old compat
code for older versions.

Resolves #47.
2021-08-27 18:28:37 -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
qwerty287
0268700fb4
Re-fix German strings 2021-08-25 16:53:47 +02: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
9aa2c99be4
playback: add elevation to queue drag
Add a nice elevation effect to queue dragging operations. This has no
purpose outside of looking nicer. Luckily it doesn't effect queue
behavior at all.
2021-08-23 06:49:03 -06:00
OxygenCobalt
504e8260ac
home: fix crash when recreating viewpager
Fix a crash where all HomeListFragments would lose their displayModes
when the activity was recreated [such as in settings].
2021-08-22 18:14:15 -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
6c5a68c929
home: re-add navigation code
Re-add support for the navToItem system [this time w/o any navbar
magic] and fix its associated issues.
2021-08-22 16:31:30 -06:00
OxygenCobalt
776776690d
recycler: refactor displaymode usage
Remove the SHOW_ALL variant from DisplayMode, replacing it with null
in SearchFragment where it was initially used. This allows all the
home pager fragments to be combined into a single HomeListFragment
that simply chooses a DisplayMode.
2021-08-22 16:09:51 -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
88a8fc9bde
search: auto-open keyboard
Auto-open the keyboard on the search tab when it starts.
2021-08-22 09:29:42 -06:00
OxygenCobalt
49eca55cd7
home: reduce viewpager sensitivity
By default, ViewPager2's sensitivity can result in vertical scroll
actions being registered as horizontal scroll actions, which is bad
for UX. Fix that by reflecting into the internal RecyclerView and
changing the touch slope value.
2021-08-22 09:04:54 -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
e83867270b
playback: fix android 11 notification issue
Fix a problem where the colorize notification option would never have
any effect on Android 11 since the system would default to the media
session if there was no icon.
2021-08-21 16:57:14 -06:00
OxygenCobalt
2358be7ba4
Merge pull request #43 from ibrajix/test-branch
Fixed notification not displaying on Samsung devices
2021-08-21 16:13:01 -06:00
ibrajix
b78d6dd8db Fixed the notification not displaying in samsung devices 2021-08-21 20:38:50 +01: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
ad2c02936a
Version 1.4.2
Ready for version 1.4.2 of Auxio.
2021-08-21 09:38:30 -06:00
OxygenCobalt
4b438daaf2
widget: re-introduce <31 elevation
The pre-Android 12 padding option was removed previously, but I've
decided to re-add it for stylistic cohesion with the material design
of those versions.
2021-08-21 09:26:45 -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
OxygenCobalt
5788fb8732
style: tweak dimens
Tweak some dimens so that they line up with the 8dp grid. This doesn't
apply to all of them since some of them are fined-tuned [such as the
fast-scroller]. The latter would likely be migrated in the later UI
overhaul.
2021-08-16 19:31:00 -06:00
OxygenCobalt
267578d606
database: move databases to feature modules
Move all databases to their respective feature modules. This makes
things a bit easier to work with.
2021-08-15 15:49:02 -06:00
OxygenCobalt
c5b1293a90
widgets: add compact/mini forms
Add two new widget forms. The compact widget form shows the cover art
[this time with a proper aspect ratio] but no controls. The mini form
only shows the metadata. This seems to work well enough and provides
more choices with how one wants to decorate their homescreen with
Auxio's widgets.
2021-08-15 11:43:22 -06:00
OxygenCobalt
fed6902c21
all: minor improvements
Add some minor UI tweaks that accumulated over this week.
2021-08-14 16:31:18 -06:00
OxygenCobalt
a5f65d39a5
loading: improve new ui
Improve the loading UI somewhat, reverting the progress bar and
applying some padding to the icon so that it looks a bit better
on Android 12.
2021-08-09 19:42:46 -06:00
OxygenCobalt
fe29e01311
loading: redesign ui
Redesign the loading UI to be in line with the rest of Auxio and the
upcoming Android 12 splash screen [sort of]. This also updates the
header and button designs so that the layout heirarchy is better/more
information dense.
2021-08-08 18:16:09 -06:00
OxygenCobalt
97459fdcca
widgets: improve preview
Use a 5x5 instead of a 4x5 preview for the widget so that it lines up
better with most default launcher configurations.
2021-08-08 15:09:28 -06:00
OxygenCobalt
4cc433f7ef
style: fix style issues
Fix some style issues that came from the colorAccent reworks.
2021-08-08 14:05:44 -06:00
OxygenCobalt
2f0df83cb2
style: customize v31 splash screen
Remove the icon background from the Android 12 splash screen, making it
alot more cleaner than it was before.
2021-08-07 20:10:33 -06:00
OxygenCobalt
64c9a4a4a7
all: add license boilerplate
Actually bother to add license boilerplate. Even though I've written
the entirety of Auxio, the boilerplate will be under "Auxio Project"
instead, as I don't want to share my real name.
2021-08-07 17:00:28 -06:00
OxygenCobalt
3a01a13b9d
widgets: fix layout issues
Fix an issue in the responsive layout backport where padding was not
factored into the calculations. This was the original issue that I
thought I fixed in e81d4b6d, but this fix seems to work alot better
from the launchers I tested [Trebuchet/Launcher3, Lawnchair].
2021-08-06 19:02:57 -06:00
OxygenCobalt
a566a30c15
style: use colorAccent
Use colorAccent instead of colorPrimary and colorSecondary.
2021-08-06 17:47:11 -06:00
OxygenCobalt
1d828c7b0a
md: add widget module to ARCHITECTURE
Add documentation on the widget module to ARCHITECTURE.md.
2021-08-06 12:12:21 -06:00
OxygenCobalt
e81d4b6d17
widgets: fix responsiveness issues
Fix some problems with the Pre-12 widget responsiveness backport, most
notably the wrong layout being chosen on more dense launcher grids.
Also change the default widget size from 2x2 to 3x2 so that it's more
readable.
2021-08-06 11:45:13 -06:00
OxygenCobalt
1b5822eae0
chore: upgrade deps
Update dependencies again:

activity -> 1.3.1
constraintlayout -> 2.1.0
media -> 1.4.1
2021-08-06 09:41:31 -06:00
OxygenCobalt
828ab3ccee
styles: refactor styles
Refactor styles again, this time trying to seperate the more
layout-specific attributes so that layouts become more re-usable.
This also updates the naming conventions of styles.
2021-08-06 09:36:56 -06:00
OxygenCobalt
b51ec756de
widgets: simplify layouts
Simplify the layouts used by widgets, moving the more version-specific
attributes into settings.
2021-08-05 17:00:59 -06:00
OxygenCobalt
8c07f8cd8c
widgets: add preview for <31
Add an image widget preview for android versions below 12.
2021-08-05 16:09:27 -06:00
OxygenCobalt
b4d9a197af
widgets: port responsiveness back to <31
Post widget responsive behavior back to Android 11 and below. This is
not the nicest solution [mostly since the UI flickers when resizing],
but it seems to work well enough.
2021-08-05 15:22:22 -06:00
OxygenCobalt
6f8f333b72
widgets: make widget responsive
The plans for widgets have changed somewhat. Instead of 4 or so
variants, there will instead be one unified widget that chooses
different layouts depending on its size. The first one added is the
full widget, which shows more controls as long as theres enough
space.
2021-08-05 10:22:41 -06:00
OxygenCobalt
5d7d86b17e
widgets: respond to settings changes
Make it so that widgets respond to settings changes, such as
cover configuration.
2021-08-03 12:22:46 -06:00
OxygenCobalt
2abc91674b
playback: simplify playbacknotification
Simplify the PlaybackNotification code to not have to pass Context for
an argument when it could simply be a private variable. This is okay,
as PlaybackNotification only lives as long as PlaybackService does.
2021-08-03 10:50:09 -06:00
OxygenCobalt
49db7e0741
widgets: add widget layout preview
Add a layout preview to the Android 12 widget metadata. I'm holding off
on implementing a drawable until the widgets are completely finalized.
2021-08-03 10:33:07 -06:00
OxygenCobalt
8551e90884
all: cleanup code
Cleanup unused resources and fix some code issues here and there.
2021-08-03 09:39:14 -06:00
OxygenCobalt
d3e738b973
widgets: add controls to minimal widget
Backtrack and add controls to the minimal widget, mostly for usability.
2021-08-03 09:05:20 -06:00
OxygenCobalt
8673995630
widgets: backport to <v31
Modify the minimal wdiget so that it can work on Android 11 and below.
Was not actually that hard, mostly changing layouts around all things
considered. This also splits up the default view and the main widget
views, which makes managing UI state much easier.
2021-08-02 08:57:35 -06:00
OxygenCobalt
ffebbc2839
playback: fix notification launch issue
Fix an accidental regression where PendingIntent.getBroadcast was
called for activities, causing the notification launch intent not
to work.
2021-08-01 19:24:08 -06:00
OxygenCobalt
d50d2f0b1e
ui: fix binding issues
Use viewLifecycleOwner for all fragments that rely on databinding. This
should solve some possible memory leaks, as viewLifecycleOwner is tied
to the lifecycle of the fragment views instead of the fragments them
selves.
2021-08-01 17:59:12 -06:00
OxygenCobalt
66be3da7e3
widgets: add minimal widget [#8]
Add the first widget implementation, the minimal widget. This took a
good 2 days of hacking and frustration to get the first prototype
working. And even then, its currently scoped to android 12 until I'm
able to port them. The implementation is still quite rough, but should
become manageable over time. More widgets will come.
2021-08-01 17:32:38 -06:00
OxygenCobalt
58bea1dda5
sort: fix sort bug with same-year album songs
Fix a problem where given two albums with the same year, like this:

Album 1 [2018]
- Song 1
- Song 2

Album 2 [2018]
- Song 3
- Song 4

getSortedArtistSongs would incorrectly drop songs that came from
any albums that came after Album 1, resulting in this:

Song 1 [Album 1]
Song 2 [Album 1]

This was caused by a quirk in toSortedMap that would drop any
map entries that corresponded to a previous sorted entry. We now
get and sort the entries directly instead, which fixes the issue.
2021-07-30 19:59:18 -06:00
OxygenCobalt
1a0ff53d67
about: prevent ui from being clipped in landscape
Fix an accidental regression in the about UI that caused it to be cut
off it landscape. It will now scroll.
2021-07-29 17:06:30 -06:00
OxygenCobalt
6d9c9f65c2
recycler: improve fast-scroller truncation
Make fast-scroller truncation more aggressive, mostly because on my new
ROM it seems like display calculations become a little wonky and cause
slight indicator cutoff. May as well add padding then so that
indicators [and the thumb by extension] actually fit and won't get
clipped.
2021-07-29 11:31:21 -06:00
OxygenCobalt
ec4ca16658
app: upgrade to android 12
Add preliminary compat for android 12 [API 31]. More changes may be
needed as time goes on, but its close enough to platform stability
to the point where its needed.
2021-07-29 10:49:18 -06:00
OxygenCobalt
cd0167405e
Version 1.4.1
Ready for version 1.4.1 of Auxio.
2021-07-29 10:02:16 -06:00
OxygenCobalt
9d04799345
prefs: make black theme default to off
The black theme's defaultValue attribute was set to true accidentally.
Fix that.
2021-07-29 09:56:26 -06:00
OxygenCobalt
cf67612042
chore: upgrade deps
Gradle -> 7.0.2
Android -> 7.0.0
Coil -> 1.3.0
Activity -> 1.3.0
Kotlin -> 1.5.21
2021-07-29 09:43:28 -06:00
qwerty287
44570309ad
Fix German translations 2021-07-23 08:52:06 +02:00
OxygenCobalt
2e278aef8a
behavior: add option to pause when a song repeats
Add a new option to pause playback whenever a song loops [e.g while in
LoopMode.TRACK]. This does mean that we can no longer use exoplayer's
native looping system, but it doesn't seem to be that much of an issue.

Resolves #29.
2021-07-22 17:00:51 -06:00
OxygenCobalt
33332dbf6b
chore: upgrade deps
androidx activity -> 1.2.4
androidx fragment -> 1.3.5
androidx media -> 1.4.0
exoplayer -> 2.14.2
coil -> 1.3.0
2021-07-22 13:38:18 -06:00
OxygenCobalt
85081c385f
chore: upgrade dependencies
Yet another dependency upgrade churn:
Android Plugin -> 4.2.2
Material -> 1.4.0
Androidx Core -> 1.6.0

Apparently material deprecated a bunch of BottomNavigationView's stuff
for no good reason. Okay.
2021-07-12 10:43:05 -06:00
OxygenCobalt
b88628f558
strings: reformat spanish translations
Reformat the new spanish [es] translations to line up with the rest of
the translation files.
2021-07-07 13:10:55 -06:00
Tesphil
60aafc6e4c
Updated Spanish strings.
I just... Updated the Spanish strings, I don't know if I did it right, it's my first time.
2021-07-05 20:26:20 -06:00
OxygenCobalt
fef5e4d9f9
style: improve black theme colors
Improve the black theme selection color by merging it with the dark
theme selection coler. This makes the selection color both more
noticable and reduces the style complexity that came from having to
manage two different selection colors.
2021-07-02 08:56:03 -06:00
OxygenCobalt
f1f2fcf41d
meta: remove access_network_state perm [#22]
ExoPlayer's online functionality will cause the library to request the
ACCESS_NETWORK_STATE permission. We don't need this since we use
ExoPlayer for local playback only. For simplicity [and to remove a
weird suspicious permission, we just disable it]
2021-07-02 08:32:38 -06:00
OxygenCobalt
7b5e817d3b
all: cleanup code
Cleanup the codebase in general:
- Remove useless resources
- Upgrade kotlin to 1.5.2
- Upgrade coil to 1.2.2
2021-06-26 19:53:57 -06:00
OxygenCobalt
d82952d88d
md: update project information
Update the README to update the current state of Auxio, uodate the
ADDITIONS document to reflect which features have been rejected,
and remove the black mode question from the FAQ.
2021-06-23 09:37:33 -06:00
OxygenCobalt
e25c91b49c
library: remove default sort option
Remove the default [a.k.a SortMode.NONE] option from the library view.
It was effectively useless in every single library mode and was
functionally equivelent to SortMode.ALPHA_DOWN. Other SortModes might
come to take it's place, but likely only for albums.
2021-06-19 10:10:28 -06:00
OxygenCobalt
5131db5383
library: add fast-scroller
Add a fast-scroller to the library view. This makes long lists of
items such as albums easier to scroll through, but also requires
pre-sorting of artists to make sure that unintended behavior does
not occur. A future commit may improve the sort options here so that
this does not need to occur.
2021-06-19 10:03:35 -06:00
OxygenCobalt
7adfb921fa
recycler: make fast scroller respond to changes
Make the fast scroller respond to changes in the RecyclerView data.
This again prepares it for use in the library with it's sorting and
item configuration.
2021-06-18 15:19:15 -06:00
OxygenCobalt
aebe279e95
about: re-add tagline to the about screen
Re-add the app tagline to the about screen. At some point during the
redesign it was lost.
2021-06-18 15:09:47 -06:00
OxygenCobalt
2f29950725
recycler: use article sort everywhere
Use the native MediaStore sort of using the characters after an article
[if present] everywhere when sorting is done. Yes, this is still dumb
and non-local, but if I want to add fast-scrolling to the library view
I will have to keep consistency across each sort.
2021-06-18 14:55:01 -06:00
OxygenCobalt
e7d3dd0a98
deps: upgrade deps
Dependency Upgrade Chore:
Fragment -> 1.3.5
ExoPlayer -> 2.14.1
RecyclerView -> 1.2.1
2021-06-16 13:00:52 -06:00
OxygenCobalt
5dc7b52fc3
style: add dialog black theme support
Make dialogs properly follow the black theme. This should complete the
black theme addition as now all parts of Auxio follow the new theme.
2021-06-11 13:54:54 -06:00
OxygenCobalt
381c0f0944
style: add popupmenu black theme support
Tack on some more themes to make popupmenu styles follow the new black
theme introduced in 68bdd0.
2021-06-11 13:33:16 -06:00
OxygenCobalt
68bdd0d929
style: add basic black theme
Finally add black theme support to Auxio. This is abit of a janky
implementation since I had to add an extra set of accents, but it
shouldn't be as big of a problem after the styles refactoring.
Support for black android components is not implemented yet, but
will be eventually.
2021-06-11 09:13:20 -06:00
OxygenCobalt
dc2157904a
styles: refactor styles
Completely refactor styles once again to improve resource sharing and
styling maintainability.
2021-06-11 08:13:52 -06:00
OxygenCobalt
9d39a2aaeb
songs: fix fast-scroll indicator bug
Fix an issue with fast-scroll indicator creation where titles that
began with "An" would not use the second word at the proper sort title.
2021-06-10 09:13:34 -06:00
OxygenCobalt
8eb301f983
ui: use new artist icon
Choose a new default artist icon that looks more functional and lines
up with the rest of the icons.
2021-06-05 14:52:01 -06:00
OxygenCobalt
c54790e24c
about: redesign ui
Completely redesign the about UI to remove its dependency on
bottomsheetdialogfragment. That object is such a hassle to deal with an
is the epitome of everything wrong with this horrible platform. This
design will enable further about extensions in the future.
2021-06-05 14:40:50 -06:00
OxygenCobalt
9aabfe2294
playback: make mediasession rely on exoplayer
Make PlaybackSessionConnector also take events from ExoPlayer as it
used to with MediaSessionConnector. This improves reliability
somewhat at the cost of making the code even more hideous.
2021-06-03 09:28:47 -06:00
OxygenCobalt
58eee7a891
playback: improve mediasession reliability
Fix some issues with PlaybackSessionConnector that resulted in the
position being stuck when a new song was played, alongside simplifying
the connector code to an extent.
2021-06-01 10:44:37 -06:00
OxygenCobalt
ab28fb6323
playback: add event handling to mediasession
Add event handling to the MediaSession. This completes the new
PlaybackSessionConnector class and possibly addresses the issue raised
in #20.
2021-06-01 10:16:30 -06:00
OxygenCobalt
1ddff8c6d3
playback: create custom mediasession connector
Create a custom session connector that connects between
PlaybackStateManager and MediaSession. The previous session connector
that was part of the exoplayer library turned out to cause bugs that
could cause the covert art not to show on the lock screen and to not
be recognized as proper player controls. This new connector
[once complete] should fix these issues.
2021-05-30 16:42:45 -06:00
OxygenCobalt
cd930554bf
deps: update androidx/kotlin
Upgrade deps chore:
core -> 1.5.0
fragment -> 1.3.4
kotlin -> 1.5.10
2021-05-30 16:42:13 -06:00
OxygenCobalt
804c38d7ce
style: Use colorSurface everywhere
Instead of using @color/background directly, use ?attr/colorSurface
so that changes can be made to the theming easier. This also
resolves some more minor issues regarding certain widget's
backgrounds.
2021-05-24 19:33:54 -06:00
OxygenCobalt
9974bd32eb
style: Use colorControlHighlight everywhere
Change most of the external layout/drawable code to use
colorControlHighlight instead of selection_color so that control
over which kind of selection color is used is more fine-grained.
2021-05-24 18:07:02 -06:00
OxygenCobalt
55dfc681ad
Upgrade dependencies
Routine dependency upgrade chore:

Android Gradle Plugin -> 4.2.1
ExoPlayer -> 2.14.0
2021-05-17 18:39:03 -06:00
OxygenCobalt
373c54e28c
Add elevation to play/pause button
Add some elevation to the play/pause button for visual flair.
2021-05-17 18:34:29 -06:00
OxygenCobalt
1b91930621
Update key/action constant formatting
Use a more consistent APP_ID + .action/.key + NAME structure for key and action constants.
2021-05-10 16:46:17 -06:00
OxygenCobalt
ec3e388071
Version 1.4.0
Ready for version 1.4.0 of Auxio.
2021-05-09 14:41:42 -06:00
OxygenCobalt
3e86c96989
Update screenshots
Remove superfluous screenshots that don't add much to the app.
2021-05-08 08:50:23 -06:00
OxygenCobalt
0ba1048ead
Fix problems from plugin update
Remove the fixAnimInfoLeak hack since it seems that issue was fixed in the new android plugin, and once again modify with the styles to get the dialogs to use the correct style again.

Another day another magic flag I need to fiddle with to get this busted android app working. This platform sucks so much.
2021-05-08 08:38:09 -06:00
OxygenCobalt
7c457d5773
Update dependencies
Update kotlin to 1.5.0 and the android gradle plugin to 4.2.0.
2021-05-05 20:11:48 -06:00
OxygenCobalt
a849d00248
Cleanup code
Clean up the formatting/structure of the codebase.
2021-05-02 18:49:16 -06:00
OxygenCobalt
35591c42c7
Merge pull request #14 from timnea/dev
Dutch Translate v2.0
2021-05-02 18:13:30 -06:00
OxygenCobalt
0daca207b0
Fix bug with playing item highlighting
Fix a problem where the wrong playing item would be highlighted if the names of the items were identical.
2021-05-02 18:08:39 -06:00
timnea
e29874d105
Dutch Translate v2.0
Updated the dutch translation of the latest app version.
2021-05-01 14:21:50 +02:00
OxygenCobalt
73949a29df
Update auxio icon
Update the auxio icon to be cleaner, make the debug icon more noticable compared to the mainline icon, and move all v26+ adaptive icons to drawable-anydpi-v26, as that is only where they are needed.
2021-04-29 06:45:27 -06:00
OxygenCobalt
e7d36311dd
Upgrade detail sorting
Upgrade the detail sorting system to:
- Persist beyond the app lifecycle [as other sort modes do]
- Be used when creating a queue for a genre/artist/album
2021-04-28 18:34:35 -06:00
OxygenCobalt
dcd5b3235c
Update header text style
Update the style of the header text further to be cleaner and to fix issues where the name would not be properly centered on smaller fonts.
2021-04-27 19:12:07 -06:00
OxygenCobalt
c5c16dfdce
Add duration to artist songs
Add a duration TextView to the artist song item.
2021-04-27 06:13:14 -06:00
OxygenCobalt
e63122ce3e
Cleanup artist songs implementation
Clean up the artist song code to not rely so heavily on a hacky ActionHeader implementation and instead just use it's own viewholder.
2021-04-26 17:22:01 -06:00
OxygenCobalt
b9506bcbc3
Add artist songs list
Add a list of artist songs to ArtistDetailFragment. This moves the artist sort functionality to the song list instead of the album list.
2021-04-26 16:54:49 -06:00
OxygenCobalt
cc72ebc251
Update action header structure
Create a seperate ActionHeader object for headers with actions attached alongside a new viewholder to accompany it.
This allows action headers to be created easier without creating your own viewholder.
2021-04-25 17:15:20 -06:00
OxygenCobalt
029a4b1ff6
Refactor margin/padding
Do two things to the margin and padding system:
- Remove the redundant padding/margin dimens and replace it with a unified "spacing" dimen namespace
- Make most margin and padding dimens follow the divisible-by-8 rule in material design
2021-04-25 14:59:21 -06:00
OxygenCobalt
39f26b4feb
Update dark mode grey accent
Update the grey accent on dark mode to improve visibility.
2021-04-25 14:28:28 -06:00
OxygenCobalt
64d4b90870
Fix tooltip display bug
Fix a problem where tooltips in dialogs would have a non-transparent background.
2021-04-16 20:06:57 -06:00
OxygenCobalt
2d4ddc0460
Upgrade gradle to 7.0
Update the gradle version to 7.0, because I can.
2021-04-16 19:59:34 -06:00
OxygenCobalt
90de930377
Fix queue update issue
Fix a bug where the queue would not be updated when the queue looped around to the beginning.
2021-04-14 14:30:32 -06:00
OxygenCobalt
732b89a0b1
Update dependencies
Update multiple dependencies to newer versions:
RecyclerView 1.2.0 -> 1.3.0
Coil 1.1.1 -> 1.2.0
Media 1.2.1 -> 1.3.0
Navigation 2.3.4 -> 2.3.5
ExoPlayer 2.13.2 -> 2.13.3

This commit also removes all dependence on JCenter. Woohoo.
2021-04-14 11:48:05 -06:00
OxygenCobalt
17e5aed131
Move playback state system to hashes
Use unique-ish hashes in the playback state system instead of the less efficent and less reliable string system.
This cuts save times in ~half and improves restore times by ~1/3.

Yeah, this is like the 4th time I've changed this system but unless I have some major loader refactor I
think this wont change again.
2021-04-14 11:14:17 -06:00
OxygenCobalt
969f25176a
Update browser opening code
Make the browser opening code actually use the app picker and target browsers specifically.
2021-04-04 12:00:27 -06:00
OxygenCobalt
887868ff9c
Remove custom title UIs from dialogs
Replace the custom title TextViews in AccentDialog/BlacklistDialog with the built-in title text.
2021-04-04 09:46:58 -06:00
OxygenCobalt
03aa2d4579
Migrate to material theming
Finally move the app from AppCompat the Material Bridge theme. This does a couple things:
- Removes need for runtime styling of material widgets used before
- Allows for a better dialog style [But only after a ton of tinkering and weird hacks]
- Makes theming slightly easier [After all the dumb migration bugs and technicalities are fixed]

I never want to do something like this again. UI styling on android is a nightmare.
2021-04-04 09:20:56 -06:00
OxygenCobalt
f2445e56f2
Update loop behavior [Resolves #13]
Change the loop behavior to something that is actually sensible,
with [ ] looping the whole playlist and [ 1 ] looping the song.

This also removes the "Do on end" setting. A new stop option may
be reintroduced, however.

This resolves issue #13.
2021-04-03 14:56:50 -06:00
OxygenCobalt
2b047f0d2c
Cleanup settings code
Do some post-setting refactor cleanup:
- Make some extension functions for SettingsManager for convienence
- Remove dead code from before the int migration
- Update semantics here and there
2021-04-03 11:43:23 -06:00
OxygenCobalt
eb56068f80
Fix database issues
Fix some problems where PlaybackStateDatabase wouldn't downgrade [Problem when hopping between dev builds with db changes] and with assertBackgroundThread being public.
2021-04-03 11:08:27 -06:00
OxygenCobalt
0305eb0beb
Standardize settings entirely
Update the structure of the settings system to do several things:
- Finally use int preferences everywhere instead of the mix of strings & ints from before
- Create a new preference named `IntListPreference` that enables the use of integers in list preferences
- Actually centralize array values and default values into a single integers xml
- Isolate all the new migration code into a single file
- Refreshed the int tables used by data objects [DB version has been updated, will not update when other changes]

The only preference not migrated is doAtEnd since that is being planned to be retired in a future LoopMode update.
2021-04-03 10:53:16 -06:00
OxygenCobalt
355b3885e3
Use androidx transaction in databases
Replace the redundant SQLiteDatabase.execute() extension with the AndroidX SQLiteDatabase.transaction() extension, which does the same thing.
2021-03-29 06:41:36 -06:00
OxygenCobalt
4d92df7896
Heavily improve dialogs
Both improve and use dialogs
- The AlertDialog style now properly colors dialogs with the primary coler
- The accent & blacklist dialogs are now based on AlertDialog for their buttons, reducing layout complexity
2021-03-28 18:47:53 -06:00
OxygenCobalt
53ec1aa8a5
Improve dialog layouts
Improve the dialog layouts so that only the recyclerview scrolls when it cannot fit instead of the entire layout being forced to scroll.
2021-03-26 15:24:04 -06:00
OxygenCobalt
076d2b3d7e
Update build configuration
Update the build config to further optimize the app
- Removed the browser dependency [-10k]
- Enabled resource minification [-100k]
2021-03-26 10:54:21 -06:00
OxygenCobalt
b65814fdbd
Redo blacklist dialog
Completely refactor the blacklist dialog to not only use the Storage Access Framework, but also to completely eliminate the material dialogs dependency.
2021-03-26 09:54:48 -06:00
OxygenCobalt
ac1e686704
Update accent dialog
Completely redo the accent dialog to remove its dependence on MaterialDialogs and also to make it more ergonomic.
2021-03-25 19:21:05 -06:00
OxygenCobalt
194bcfcd05
Fix more fast-scroll issues
Fix two more fast scrolling issues:
- Fixed size of the view would cut off larger fonts
- Thumb would briefly show when the view would initially start

This custom view was a mistake, but anything for less kbs.
2021-03-25 09:24:40 -06:00
OxygenCobalt
6d5ed6dd7b
Update fast scroll behavior
Update the behavior of the fast scroller so that the scroll only begins when the pointer is in the indicator box itself, instead of the general view.
2021-03-24 08:47:14 -06:00
OxygenCobalt
54efad3fdf
Fix crash with fast scroller
Fix an issue where the app would crash if the fast scroller is scrolled above the indicators. This change will be backported to 1.3.3.
2021-03-23 20:20:22 -06:00
OxygenCobalt
ec78684c25
Version 1.3.3
Ready for version 1.3.3 of Auxio.
2021-03-23 20:01:18 -06:00
OxygenCobalt
d0280fffb2
Fix crash on PlaybackService destruction
Fix a destructive crash when PlaybackService attempted to release a wakelock that wasn't being held.
2021-03-23 19:21:44 -06:00
OxygenCobalt
688f9d3a52
Fix fast-scroll bugs
Fix some behavior issues with the new fast scroll view.
2021-03-23 17:06:06 -06:00
OxygenCobalt
0a18108419
Unify fast-scroller
Completely unify the fast scroll indicators and the fast scroll thumb into a single view.
2021-03-23 14:35:32 -06:00
OxygenCobalt
cc3d4fb9c6
Explitly declare dependencies
Explicitly declare some dependencies that were originally implicit, resolving some future build issues.
2021-03-23 10:12:24 -06:00
OxygenCobalt
ffd3275ca5
Resolve fast-scroll resource issues
Accidentally forgot to move the resources from the fast scroll library, so here it is.
2021-03-22 16:17:16 -06:00
OxygenCobalt
02fed16c31
Roll custom fast scroller
Drop the old IndicatorFastScroll library from Auxio and replace it with a hyper-specialized variant designed specifically for Auxio.
This not only eliminates a source of hacks/problems/bloat, it also removes a dependency on jcenter (Which is shutting down soon)
2021-03-22 16:00:12 -06:00
OxygenCobalt
3484b8a0bf
Update markdown
Update markdown in preperation for 1.3.2
2021-03-22 09:41:09 -06:00
OxygenCobalt
f1c40d2539
Add wakelock
Actually add a wakelock to the music load process to prevent it from stopping the CPU mid-load.
2021-03-21 11:12:48 -06:00
OxygenCobalt
ba79ac0001
Cleanup code
Do some code cleanup.
2021-03-21 09:56:20 -06:00
OxygenCobalt
824ac56bfa
Update libraries
Update libs to new versions, including the nav framework from 1.0.0 -> 2.3.4.
2021-03-20 19:54:41 -06:00
OxygenCobalt
66685350cb
Update blacklist strings
Update the strings related to the blacklist functionality, also adding german translations.
2021-03-20 17:22:36 -06:00
OxygenCobalt
72a7aa6744
Fix song restore issue
Fix an issue where the playback restore process would only search the list of songs for the currently playing song, running the risk of picking the wrong song with the same name.
2021-03-20 16:14:36 -06:00
OxygenCobalt
a55b42a3da
Fix blacklist dialog bug
Fix a problem where the blacklist dialog wouldn't properly detect when there were no changes made to the list of paths.
2021-03-20 16:12:06 -06:00
OxygenCobalt
68887ffb64
Add blacklist restart functionality
When the user selects the "Save" button in the blacklist dialog, the app will now restart to reload the music library with the new directories.
2021-03-15 15:55:52 -06:00
OxygenCobalt
787212ee59
Minor improvements
Fix some more blacklist UI issues alongside some problems with formatting/audio focus.
2021-03-14 09:33:15 -06:00
OxygenCobalt
632e39f2e2
Update blacklist UI
Update new functionality/streamline the blacklist UI.
2021-03-13 19:47:36 -07:00
OxygenCobalt
aa0c978a65
Add blacklist UI
Add a UI for the blacklist functionality.
2021-03-13 17:07:42 -07:00
OxygenCobalt
9d83619811
Unify system service calls
Unify the calls to getSystemService to a custom function that uses the ContextCompat getSystemService instead of the clunky vanilla getSystemService code.
2021-03-13 10:50:39 -07:00
OxygenCobalt
2f5a6984d9
Possibly fix AudioFocus bug
(Maybe) fix an issue where AudioFocus might cause the playback to start again after being paused by the user, possibly caused by a audiofocus loss being labeled transient even if it wasnt.
2021-03-13 10:32:47 -07:00
OxygenCobalt
31672fca40
Change inter-black to inter-exbold
Reduce the weight of the header text [a.k.a toolbar text] so that they generally look better.
2021-03-11 20:20:44 -07:00
OxygenCobalt
9a02eadc95
Refactor database code
Simplify and refactor alot of the database code, along with extracting some pieces of code into actual utilities.
2021-03-09 10:14:47 -07:00
OxygenCobalt
72877f77ee
Fix parent restore bug
Fix a bug where PlaybackStateManager would try to restore the parent from a full list of items, which raises the possibility for the incorrect parent to be chosen.
2021-03-09 09:04:48 -07:00
OxygenCobalt
5d72bfa09b
Move accent dialog to object
Move the dialog created in showAccentDialog to a dedicated object.
2021-03-09 08:01:49 -07:00
OxygenCobalt
f5f67a0b76
Add blacklist functionality
Add the ability to block directories from indexing. Will add a UI interface for this later.
2021-03-07 11:56:20 -07:00
OxygenCobalt
8de09cd880
Update PlaybackStateDatabase
Update PlaybackStateDatabase to use a new filename and the TEXT type whenever storing strings.
2021-03-07 11:18:36 -07:00
OxygenCobalt
a750100aff
Fix queue edge-to-edge issue
Fix a problem where the last queue item would display behind the navigation bar when edge to edge is on.
2021-03-07 08:26:15 -07:00
OxygenCobalt
391ca70822
Update playback system
Tweak some things in PlaybackService and PlaybackStateManager to make them more elegant.
2021-03-05 14:58:30 -07:00
OxygenCobalt
466629e43d
Update music loading init process
Change the loading process so that LoadingViewModel no longer requires an application instance to start. Also move the main music loading code to an internal function.
2021-03-05 13:45:43 -07:00
OxygenCobalt
2c93e3f362
Update code style
Heavily tweak the code style across the app, doing things such as fixing returns and giving names to lambda values.
2021-03-05 12:56:04 -07:00
OxygenCobalt
fab377eba4
Improve genre compatibility
Add a new range of Winamp 5.6+ genres to further improve compatibility with old genres.
2021-03-05 11:20:22 -07:00
OxygenCobalt
58ec1ce293
Improve mosaic quality
Change the mosaic bitmap config to ARGB_8888, which greatly improves quality.
2021-03-05 10:11:53 -07:00
OxygenCobalt
a4dc35c50d
Update music loading system
Do some simplification and optimizations to the music loading system in preperation for the blacklisting system.
2021-03-03 19:46:34 -07:00
OxygenCobalt
c9f86436c8
Fix scroll thumb visibility issue
Fix a problem where the scroll thumb would briefly show up when SongsFragment is first shown.
2021-03-03 16:02:45 -07:00
OxygenCobalt
fefe2d244d
Add tooltips to accent picker
Add tooltips to the accent picker that align with the content description.
2021-03-01 19:24:37 -07:00
OxygenCobalt
3f0331f1c9
Redo accents
Collapse amber and yellow into a single accent [Yellow], remove the neutral accent due to UI isuses, and darken light-mode accents across the board to be more visible.
2021-02-28 16:07:46 -07:00
OxygenCobalt
abd5b3ca8d
Remove NoLeakThumbView
Remove the old NoLeakThumbView class, apparently I didnt remove it before?
2021-02-28 15:01:38 -07:00
OxygenCobalt
917540e626
Refactor fast scroll
Completely write my own fast scroller thumb and also redo how the fast scroller is configured in SongsFragment.
2021-02-27 13:00:46 -07:00
OxygenCobalt
a9765d2ad6
Remove debug statement
Remove a frustrated logD call I made sometime last night. Why do I keep doing this.
2021-02-26 07:42:51 -07:00
OxygenCobalt
891d64b459
Fix service startup bug
Fix a problem where if playback was started by a file intent the ExoPlayer instance wouldn't actually begin playing.
2021-02-25 19:08:45 -07:00
OxygenCobalt
af9fac7de2
Fix play/pause bug
Possibly fix a bug where the play/pause button would get stuck in the play position when playing from a file intent.
2021-02-25 17:55:20 -07:00
OxygenCobalt
e9abee9f64
Update documentation
Completely update the documentation throughout the app.
2021-02-25 11:36:47 -07:00
OxygenCobalt
b9720286c3
Move play/pause animation code
Move the code responsible for the play/pause animation to the onCreateView function instead of onResume.
2021-02-23 15:16:15 -07:00
OxygenCobalt
7f0042fd2f
Refactor file intent system
Finally find a way to handle file intents without having to coordinate it across three different fragments in onResume.
2021-02-23 14:04:45 -07:00
OxygenCobalt
f04ffdb59b
Update codebase
Do a variety of small things across the codebase.
2021-02-23 13:22:09 -07:00
OxygenCobalt
8c107d66a0
Stop RecyclerView momentum on fast scroll
Prevent any unnessecary scrolling when using the fast scroll bar in SongsFragment.
2021-02-21 15:14:55 -07:00
OxygenCobalt
299c47e9c3
Scroll QueueFragment on shuffle toggle
Scroll QueueFragment to the top when shuffle is toggled so that it does not flip out as much as it would otherwise.
2021-02-21 15:03:17 -07:00
OxygenCobalt
5de45eea0e
Version 1.3.1
Ready for version 1.3.1 of Auxio.
2021-02-21 08:19:05 -07:00
OxygenCobalt
044f74b45b
Fix file intent crash
Keep tweaking this buggy system to fix another bug I caused where the app would crash if selecting a song while the app was inactive.
2021-02-20 21:29:20 -07:00
OxygenCobalt
89174b8011
Clean code
Do some codebase cleaning.
2021-02-20 16:35:36 -07:00
OxygenCobalt
4efbab8b05
Change file intent navigation structure
When a file intent is given, navigate to PlaybackFragment directly.
2021-02-20 13:47:06 -07:00
OxygenCobalt
cca80c65eb
Improve music loading system
Heavily improve the music loading system, hopefully fixing some edge-cases that people have been reporting.
2021-02-20 11:56:31 -07:00
OxygenCobalt
00e7af8f3d
Fix another file intent bug
Fix another bug where PlaybackService wouldn't show its notification/go into foreground if a song was played by a file intent.
2021-02-20 10:05:20 -07:00
OxygenCobalt
cc14648099
Fix file intent issue
Fix a problem where the file intent wouldnt work on any fragment that wasnt MainFragment.
2021-02-20 09:46:29 -07:00
OxygenCobalt
7a4b654222
Clean up PlaybackService
Clean up the code in PlaybackService.
2021-02-19 19:25:03 -07:00
OxygenCobalt
7524589969
Unify notification
Unify the notification extensions into a single PlaybackNotification object that does not rely on PlaybackStateManager and SettingsManager.
2021-02-19 15:54:58 -07:00
OxygenCobalt
ca4cabedbc
Change file intent to play
Change the file intent to play instead of view. I may add the view option back in at some point however if the play functionality angers me enough.
2021-02-19 14:47:00 -07:00
OxygenCobalt
2dfd916736
Add file intent
Add the ability to view a music file in auxio when selecting the file from another app. The ability to play it will be added later.
2021-02-19 14:22:58 -07:00
OxygenCobalt
e631ddd730
Make save playback state setting public
Make the ability to force-save the playback state public in the settings menu instead of in the debug menu.
2021-02-19 11:19:45 -07:00
OxygenCobalt
0a7fbeca6d
Fix music load failure [Resolves #4]
Remove the `check` statements from `applyAlbum` and `applyGenre` that could cause the music loading to fail on some devices. Now only the first album/genre applied will stick. This resolves issue #4.
2021-02-19 10:12:58 -07:00
OxygenCobalt
e3e0015237
Rewrite loading UI
Completely rewrite the loading UI to be far more understandable.
2021-02-19 09:33:49 -07:00
OxygenCobalt
92e9e3282c
Update documents
Make the description and tagline less needlessly verbose, update info about translations in the FAQ.
2021-02-18 19:20:46 -07:00
OxygenCobalt
2f8916117e
Update compact controls animation
Make the slide animation on the compact controls look better.
2021-02-18 19:08:49 -07:00
OxygenCobalt
bd79951c4e
Optimize drawables
Optimize the drawables used by Auxio.
2021-02-17 16:32:13 -07:00
OxygenCobalt
7d93cc97f6
Update fastlane metadata
Update parts of the fastlane metadata to remove extraneous files.
2021-02-17 15:55:46 -07:00
OxygenCobalt
9de2b80312
Update documents
Update the markdown documents and the screenshots.
2021-02-17 11:29:02 -07:00
OxygenCobalt
1d1da1fac2
Update exoplayer
Bump exoplayer to 2.12.3
2021-02-17 10:39:15 -07:00
OxygenCobalt
cccf6ba9f8
Fix memory leak with PlayPauseButton
Fix a memory leak in PlayPauseButton that occured from not clearing an animation listener when done with it.
2021-02-16 20:41:55 -07:00
OxygenCobalt
2203018947
Fix issue where seams should show up on play icon
Fix a bug where a seam would display on the play icon on certain displays.
2021-02-16 20:31:37 -07:00
OxygenCobalt
1d8aeb16c2
Further streamline coil usage
Simplify how coil is used even further.
2021-02-16 09:27:41 -07:00
OxygenCobalt
c41c3be4c5
Update changelogs
Re-add the changelog for 1.2 [Albeit below 500 chars] and also add a preliminary changelog for 1.3. Update the version code to 2 as well.
2021-02-16 07:27:07 -07:00
OxygenCobalt
7348fdf536
Add tr [Turkish] translations
Add partial translations for turkish.
2021-02-15 19:36:51 -07:00
OxygenCobalt
09f07ad073
Add in [Indonesian] translations
Add translations for Indonesian.
2021-02-15 19:18:27 -07:00
OxygenCobalt
2071519414
Increment Version Code [Resolves #2]
Actually increment the version code, which was something I didnt know I had to do. This resolves issue #2.
2021-02-15 17:32:53 -07:00
OxygenCobalt
6fa698d7eb
Prevent search box from scrolling the toolbar
Prevent the search TextView from being able to scroll the toolbar when there are no results.
2021-02-15 15:07:39 -07:00
OxygenCobalt
118172b7c8
Fix song selection bug
Fix a bug where if a song is selected while shuffling it would not move that song to the beginning of the queue.
2021-02-15 14:27:03 -07:00
OxygenCobalt
6a273ab34d
add hu [Hungarian] translations
Add partial translations for Hungarian.
2021-02-14 17:07:37 -07:00
OxygenCobalt
0c8ca17c01
Add uk [Ukranian] translations
Add partial translations for Ukranian.
2021-02-14 14:04:32 -07:00
OxygenCobalt
0d396aaa6b
Change sorting names
Change the names of the sorting modes to "Ascending" and "Descending" to make them more translation-friendly.
2021-02-14 11:41:59 -07:00
OxygenCobalt
2ae41f648b
Add zh [Chinese] translations
Add translations for Taiwan and Mainland Chinese.
2021-02-14 11:21:25 -07:00
OxygenCobalt
b6ac897314
Add ko [Korean] translations
Add partial translations for korean.
2021-02-14 10:35:22 -07:00
OxygenCobalt
62572e7e52
Add po [Polish] translations
Add partial translations for Polish
2021-02-13 16:41:03 -07:00
OxygenCobalt
a4801bdf2f
Redo controls view
Redo the controls view to support a slide enter/exit animation, along with fixes to elevation problems on certain devices.
2021-02-13 14:49:57 -07:00
OxygenCobalt
2b24d6661e
Update libraries
Update Coil/Android libraries
2021-02-13 10:37:34 -07:00
OxygenCobalt
f1245d7d40
Improve layout responsiveness
Make layouts better on all screen sizes.
2021-02-13 10:20:48 -07:00
OxygenCobalt
e0485ebad9
Refactor coil
Completely refactor coil and how its used so that it centers around data objects instead of a hodgepodge of URIs and Song data.
2021-02-12 22:28:41 -07:00
OxygenCobalt
54f9ceca90
Update portrait tablet layout
Update the portait tablet layout to look better.
2021-02-07 20:18:06 -07:00
OxygenCobalt
ed10bd1898
Rewrite ARCHITECTURE.md
Redo the structure of ARCHITECTURE.md to make more sense with its intended purpose.
2021-02-07 19:57:52 -07:00
OxygenCobalt
26dd1036ec
Add actionmenu extension function
Simplify menu creation by using a Fragment extension to create a new ActionMenu.
2021-02-07 18:54:04 -07:00
OxygenCobalt
eb5292d083
Add architecture document
Add a document describing the high-level auxio architecture.
2021-02-07 16:07:16 -07:00
OxygenCobalt
cef4cb68da
Update BaseViewHolder
Change the name of BaseViewHolder to BaseHolder and make the click listener arguments optional.
2021-02-07 14:00:48 -07:00
OxygenCobalt
23ddfd4d99
Fix issues with playback layouts on small screens
Fix problems with the playback layouts when the screen size is lower than 390dp.
2021-02-04 17:42:44 -07:00
OxygenCobalt
a34850b9cb
Update codebase
Do a bunch of minor codebase changes that have accumulated.
2021-02-04 16:10:12 -07:00
OxygenCobalt
603de31ffe
Add ro [Romanian] translations
Add partial Romanian translations.
2021-01-31 08:33:36 -07:00
OxygenCobalt
7fc0bcc56d
Update tablet detail layouts
Update the tablet detail layouts to look better.
2021-01-30 13:26:49 -07:00
OxygenCobalt
67c177ccf3
Create parent abstraction
Create a BaseModel variant for albums, artists, and genres to simplify on alot of code that should only run on those.
2021-01-30 11:18:29 -07:00
OxygenCobalt
ec310a5b93
Fix playing album display bug
Fix an issue where an album will not immediately show up as playing if you play it from the artist UI.
2021-01-30 10:29:46 -07:00
OxygenCobalt
55af5790b8
Reformat code/markdown
Make some changes to the code formatting & the markdown documents
2021-01-30 10:25:51 -07:00
OxygenCobalt
4438fb9970
Simplify base themes
Simplify Theme.Base so that a change in the single Theme.Base will affect all modes regardless of version or theme.
2021-01-30 09:16:27 -07:00
OxygenCobalt
15dbe59db5
Minor fixes
Fix some ordering & display issues. Also slightly increased the play/pause icons size on PlaybackFragment.
2021-01-29 21:21:57 -07:00
OxygenCobalt
b3e5777a47
Reformat translations
Completely refactor translations to be in line with the main strings.xml file.
2021-01-29 20:42:08 -07:00
OxygenCobalt
6f2fd3968a
Add nl [Dutch] translations
Add partial translations for Dutch.
2021-01-29 14:53:35 -07:00
OxygenCobalt
ee669ce389
Add hi [Hindi] translations
Add some hindi translations, not alot however.
2021-01-27 19:32:29 -07:00
OxygenCobalt
d98d41102d
Add ru [Russian] translations
Add partial translations for Russian, along with some new translations for other languages.
2021-01-27 18:58:35 -07:00
OxygenCobalt
2099453d01
Add el [Greek] translations
Add partial translations for greek
2021-01-26 17:42:31 -07:00
OxygenCobalt
0f591c5b5e
Add pt [Portugese] translations
Add partial portugese translations for brazil & portugal.
2021-01-26 16:50:42 -07:00
OxygenCobalt
1710847aa5
Add it [Italian] translations
Add partial italian translations
2021-01-25 19:56:59 -07:00
OxygenCobalt
c9d7193bd7
Use integer format strings
Use %d in certain format strings instead of %s
2021-01-25 19:11:04 -07:00
OxygenCobalt
28a59dc6f7
Add es [Spanish] translations
Add partial spanish translations.
2021-01-25 18:59:12 -07:00
OxygenCobalt
e24aa4319c
Fix RTL layouts
Fix problems with the RTL layouts
2021-01-25 18:01:25 -07:00
OxygenCobalt
6c671488b0
Add fr [French] translations
Add incomplete french translations, I'm not fluent in this language so other people will likely have to complete these.
2021-01-25 15:46:20 -07:00
OxygenCobalt
35551e3dba
Improve german translations
Fix alot of problems with the german translations
2021-01-25 14:45:21 -07:00
OxygenCobalt
3ab5671319
Add de [German] translations
Add some [Likely broken] german translations using a mix of other sources, my own knowledge, and a english-deutsch dictionary. Ill try to improve these as I go along as theyre the only ones that I'm really able to translate.
2021-01-24 19:13:27 -07:00
OxygenCobalt
27d39a1364
Spin off audio focus into seperate object
Move the code responsible for audio focus into a seperate object to reduce the amount of code in PlaybackService.
2021-01-24 14:35:38 -07:00
OxygenCobalt
3851c59f4b
Update UI code
Make some misc changes to the code that runs behind the UI.
2021-01-24 11:48:55 -07:00
OxygenCobalt
a5100b31ab
Version 1.2.0
Ready for version 1.2.0 of Auxio.
2021-01-19 17:10:12 -07:00
OxygenCobalt
f779904c0c
Update markdown
Update the markdown documents for Version 1.2.0.
2021-01-19 16:00:16 -07:00
OxygenCobalt
ab2da7a5a4
Make artist IDs unique
Fix an issue where the artist IDs would not be unique in the context of the other items.
2021-01-19 14:54:12 -07:00
OxygenCobalt
0bbcff35eb
Fix compact playback visibility issues
For some reason the new system I implemented for compact playback visibility suddenly stopped working! Revert to the old system.
2021-01-19 14:39:09 -07:00
OxygenCobalt
942e1fc740
Reenable constant bitrate seeking
Turns out it didnt fix the problem, was probably some fluke bug or bit flip.
2021-01-19 11:52:22 -07:00
OxygenCobalt
2c435b25a7
Disable constant bitrate seeking
Turns out constant bitrate seeking caused problems. Ill add an option to re-enable it.
2021-01-18 17:13:25 -07:00