Auxio/CHANGELOG.md
OxygenCobalt d80c49f11f
image: add image group
Add a new view called ImageGroup that will handle all advanced image
hacks from now on.

This includes the indicator (which is now animated), any selection
indicators, and the weirdness of the album song image. All of that
is now handled by ImageGroup. This is the culmination of probably
a day and a half of wrangling with android insanity and having to
remove a lot of what I liked about the indicator in order to make
this work on a basic level.

The only major bug I am currently aware of with this is that the
indicator is bugged out on Lollipop devices due to bad vectors.
Again.

I never want to do this again. I cannot believe that adding a basic
indicator took this long and required so much stupid hacks and
inefficient code. And then google wonders why android apps are so
visually unappealing and janky and laggy. Hm. Must be that devs aren't
using the brand new FooBarBlasterFlow library!
2022-06-10 11:57:50 -06:00

18 KiB

Changelog

dev [v2.3.2, v2.4.0, or v3.0.0]

What's New

  • Folders on external drives can now be excluded on Android Q+ [#134]
  • Playback bar now has a skip action
  • When playing, the cover now shows an animated indicator

What's Improved

  • The toolbar in the home UI now collapses when scrolling
  • The toolbar layout is now consistent with Material Design 3
  • Genre parsing now handles multiple integer values and cover/remix indicators (May wipe playback state)

What's Fixed

  • Playback bar now picks the larger inset in case that gesture inset is missing [#149]

Dev/Meta

  • New translations [Fjuro -> Czech]
  • Moved music loading to a foreground service
  • Phased out ImageButton for MaterialButton
  • Unified icon sizing

v2.3.1

What's Improved

  • Loading UI is now more clear and easy-to-use
  • Made album/artist/genre grouping order consistent (May change genre images)

What's Fixed

  • Fixed crash when seeking to the end of a track as the track changed to a track with a lower duration
  • Fixed regression where GadgetBridge media controls would no longer work
  • Fixed bug where music would be incorrectly reloaded on a hot restart
  • Fixed issue where the album/artist/genre would not be correctly restored
  • Fixed issue where items would not highlight properly in the detail UI
  • Fixed hypothetical issue where widget would cause an OOM on large devices

Dev/Meta

  • New translations [yurical -> Korean, qwerty287 -> German]
  • Switched from LiveData to StateFlow
  • Use notifyItemChanged instead of directly mutating ViewHolder instances.
  • Added highly experimental ExoPlayer metadata backend (not enabled in-app)

v2.3.0

What's New

  • Added disc number support
  • Added ReplayGain support for below-reference volume tracks [i.e positive ReplayGain values]
  • Added ReplayGain pre-amp customization
  • About screen now shows counts for multiple types of library items, alongside a total duration
  • New disc, track, song count, and duration sorting modes

What's Improved

  • Re-enabled theme customization on Android 12
  • The tab selector now hides itself when there is only one tab
  • Made the cover on the thin widget larger

What's Fixed

  • Fixed incorrect ellipsizing on song items
  • Fixed a variety of esoteric crashes with queue state
  • Fixed music indexing error when the OS would not provide a file name
  • Fixed icon corruptions on lollipop devices

What's Changed

  • Audio focus is no longer configurable
  • Made the layout of album songs more similar to other songs

Dev/Meta

  • Updated translations [Konstantin Tutsch -> German, cccClyde -> Chinese, Gsset -> Russian, enricocid -> Italian]
  • Switched to spotless and ktfmt instead of ktlint
  • Migrated constants to centralized table
  • Introduced new RecyclerView framework
  • Use native ExoPlayer AudioFocus implementation
  • Make ReplayGain functionality use AudioProcessor instead of volume
  • Removed databinding [Greatly reduces compile times]
  • Start using Material You dialogs
  • An uncountable amount of internal codebase improvements

v2.2.2

What's New

  • New spanish translations and metadata [courtesy of n-berenice]

What's Improved

  • Rounded images are more nuanced
  • Shuffle and Repeat mode buttons now have more contrast when they are turned on

What's Fixed

  • Fixed crash on certain devices running Android 10 and lower when a differing theme from the system theme was used [#80]
  • Fixed music loading failure that would occur when certain paths were parsed [#84]
  • Fixed incorrect track numbers when the tag was formatted as NN/TT [#88]
  • Fixed years deliberately set as "0" showing up as "No Date"
  • Fixed headset management unexpectedly starting audio when the app initially opens
  • Fixed crash that would occur during a playback restore with specific queue states [#89]
  • Partially fixed buggy behavior when multiple queue items were dragged in quick succession

What's Changed

  • All cover art is now cropped to a 1:1 aspect ratio
  • Headset focus has been replaced with headset autoplay. It can no longer be disabled.

Dev/Meta

  • Enabled elevation drop shadows below Android P for consistency
  • Switches now have a disabled state
  • Reworked dynamic color usage
  • Reworked logging
  • Upgrade ExoPlayer to v2.17.0 [Eliminates custom fork]

v2.2.1

What's Improved

  • Updated chinese translations [courtesy of cccClyde]
  • Use proper material you top app bars
  • Use body typography in correct places
  • Expose file opening functionality better

What's Fixed

  • Fixed issue where playback would start unexpectedly when opening the app

What's Changed

  • Disabled audio focus customization on Android 12 [#75]

v2.2.0

What's New:

  • Added Arabic translations [Courtesy of hasanpasha]
  • Improved Russian translations [Courtesy of lisiczka43]
  • Added option to reload the music library

What's Improved:

  • Songs now show their specific artist name instead of the name of the artist they are grouped up in
  • Artists are now grouped up case-insensitively
  • Songs of different file formats are now grouped up into a single album
  • Reworked typography slightly
  • Invalid track numbers [i.e 0] will now be shown as a generic song icon

What's Fixed:

  • Fixed crash on some devices configured to use French or Czech translations
  • Malformed indices should now be corrected when the playback state is restored
  • Fixed issue where track numbers would not be shown in the native language's numeric format
  • Fixed issue where the preference view would apply the M3 switches inconsistently
  • Fixed issue where the now playing indicator on the playback screen would use an internal name

Dev/Meta:

  • Removed 1.4.X compat
  • Added new changelog document
  • Reworked contribution info and templates

v2.1.0

What's New:

  • Switched to a single queue system [i.e Play Next/Add to queue]
  • Added ReplayGain support [Experimental]
  • New russian translations [Courtesy of Vladimir Kosolapov]
  • New chinese translations [Courtesy of cccClyde]
  • Android 12L support
  • Added option to round album covers for visual cohesion
  • Added FLAC support for devices on Android Oreo and lower
  • Added edge-to-edge support on devices on Android Oreo and lower

What's Improved:

  • Increased mosaic quality
  • Enabled black theme on Android 12+
  • Content now fades when the playback view is expanding
  • Improved layouts on small and large screens
  • Improved how the app handles audio focus
  • Improved how invalid years and durations are handled
  • Use Material 3 switches in the settings menu

What's Fixed:

  • Fixed issue where the playback view would be hard to swipe up to when using gesture navigation
  • Band-aided completely broken layouts in split screen mode
  • Fixed crash in the playback view when a song's duration was 0
  • Fixed issue where apps like GadgetBridge would not detect Auxio

Dev/Meta:

  • ExoPlayer is now a local dependency
  • Added ExoPlayer metadata support for Ogg Vorbis and Opus

v2.0.1

What's Fixed:

  • Fixed problem where the compact playback controls would not work
  • Fixed unusable playback layout on small screens

v2.0.0

What's New:

  • Auxio has a new look derived from Material 3
  • Material You support on Android 12
  • Library and song view have been merged into a unified view
  • Shuffle can now be accessed everywhere
  • Media indexer now supports album artists
  • Accents are now more vibrant and varied
  • One can now slide up the compact playback view to reveal the full playback view
  • Redesigned widgets to respect album art and increase visual cohesion
  • Added song sorting [#16]
  • Added default tab customization [#12]
  • Added album, artist, and year sorting options
  • Added descending order to all sorting options
  • Added czech translations [Courtesy of Fjuro]
  • Fast scroller has been replaced with a scrollbar with fast scroll capabilities

What's Improved:

  • Improved playback persistence [State will be wiped]
  • Improved accessibility everywhere
  • Streamlined the search UI
  • Improved queue UI
  • Improved detail UI
  • Unified appbar behavior
  • Songs with accented characters will now show up in search when using their non-accented counterparts
  • Removed loading screen
  • Artist/Genre images now respect the "Ignore MediaStore Covers" setting
  • Ascending order now works properly with years
  • Fixed poor UI on Lollipop devices

What's Fixed:

  • Switched to a new play icon [Fixes seam/alignment issues]
  • Fixed issue where notifications would not be colored on samsung phones
  • Re-added the german translations that were accidentally removed in 1.4.2
  • Fixed issue where links could not be opened on Android 11+
  • Fix crash that would occur when rotating the dialog
  • Fixed issue where cover art could not be loaded at all on some devices [#51]
  • Fixed issue where widgets would have unusable UIs on certain device configurations
  • Fixed issue where older launchers will not show a widget preview on android 12
  • Fixed duplicate songs appearing on some devices

What's Changed:

  • Removed colorize notification option
  • Removed deep orange and blue grey accents

Dev/Meta:

  • Migrated to material entirely
  • Reworked UI dimensions to line up with material design
  • Use color selectors in more places
  • Eliminated legacy size classifiers
  • Created new architecture document

v1.4.2

What's New:

  • Added Widgets
  • Android 12 support

What's Improved:

  • Fast scroller now truncates more aggressively when there is not enough space
  • Minor improvements to layout hierarchy
  • Detail text/track numbers will no longer shrink
  • Loading screen has been tweaked to line up with the rest of Auxio

What's Fixed:

  • Fixed issue where the new about screen would be cut off in landscape mode
  • Fixed issue where songs from two albums with the same year would be incorrectly shown in the artist view

Dev/Meta:

  • Added license boilerplate

v1.4.1

What's New:

  • Added black dark theme
  • Added a fast-scroller to the library view
  • Redesigned the about screen
  • Added full spanish translations [Courtesy of tesphil]
  • Added an option to pause when a song repeats [#29]

What's Improved:

  • Article sort is now used everywhere
  • Improved german translations [Courtesy of qwerty287]

What's Fixed:

  • Fixed problem where cover art would disappear on the lock screen
  • Fixed problem where playback controls would not work on the lock screen [#20]
  • Fixed issue where fast-scroller indicators would not line up for titles starting with "An"

Dev/Meta:

  • Updated ExoPlayer to 2.14.2
  • Completely refactored UI styling
  • Added permission documentation [#22]
  • Removed the ACCESS_NETWORK_STATE permission [#22]
  • Added icon to metadata [#25]

v1.4.0

What's New

  • Artist view now shows a list of songs
  • Loop functionality now has a new, more sensible behavior
  • Dialogs have been revamped with a new style
  • Added complete dutch translation [Courtesy of timnea]

What's Improved

  • Changed the header font to be cleaner
  • Completely rolled custom dialog system
  • Blacklisted directories are now chosen through the built-in file picker
  • Improved opening links in the about dialog
  • Restore system now uses unique identifiers, increasing reliability and speed [Will wipe previous state]
  • Grey accent in dark mode has been made more visible
  • The queue will now reflect the current album/artist/genre sort
  • Album/artist/genre sort is now remembered when the app restarts

What's Fixed

  • Fixed issue where the scroll thumb would briefly display on the Songs UI
  • Fixed issue where fast scrolling could be triggered outside the bounds of the indicators
  • Fixed issue where the wrong playing item would be highlighted if the names were identical
  • Fixed a crash when the thumb was moved above the fast scroller [Back-ported to 1.3.3, included in this release officially]

Dev/Meta

  • Migrated fully to material design
  • Int preferences are now used everywhere
  • Upgraded ExoPlayer to 2.13.3
  • Eliminated dependence on JCenter
  • Eliminated Material Dialogs and Browser dependencies

v1.3.3

What's Fixed

  • Fixed crash that would occur when the app would shut down, preventing the playback state from being saved

Dev/Meta

  • Explicitly declared dependencies
  • Completely integrated fast-scroller code into codebase

v1.3.2

What's New

  • Added the ability to exclude directories from indexing [#6]
  • Accents have been redone to improve visibility and UI simplicity
  • Enabled wake lock functionality

What's Improved

  • Queue UI no longer navigates away when playing from a file
  • Songs UI no longer keeps scroll momentum when fast scrolling
  • Improved handling of old genre names
  • Changed the header font to be cleaner
  • Improved mosaic quality

What's Fixed

  • Fixed issue where prominent genre would display incorrectly on artist view
  • Fixed issue where AudioFocus would begin playback spontaneously
  • Fixed issue where AudioFocus would not restore volume to 100% after ducking
  • Fixed issue where the last item in the queue would be behind the navigation bar in edge-to-edge mode
  • Fixed issues with the playback restore process (Current state will be wiped on update)
  • Fixed buggy behavior when shuffle is toggled inside queue UI

Dev/Meta

  • Updated exoplayer to 2.13.2
  • Updated navigation to 2.3.4

v1.3.1

What's New

  • Added the ability to play a song from a file
  • Added ability to manually save the playback state

What's Improved

  • Optimized icons
  • Updated the animation of the compact controls to be faster
  • Songs without genres are now placed into an unknown genre

What's Fixed

  • Fixed issue where the music load would fail from repeated genre applications [#4]
  • Fixed crash that would occur on the songs UI due to bad music loading [#5]

Dev/Meta

  • New tagline and description
  • Rewrote loading UI
  • Rewrote notification code

v1.3.0

What's New:

  • Added west-european translations [German, Spanish, French, Italian, Dutch, Portugese]
  • Added east-european translations [Romanian, Greek, Russian, Ukranian, Polish, Hungarian]
  • Added asian translations [Hindi, Indonesian, Chinese, Korean]
  • Added middle-eastern translations [Turkish]

What's Improved:

  • Optimized image loading even further
  • Improved the UI on smaller tablets
  • Updated the playback UIs to look better on all devices
  • Improved the look of the play/pause button
  • Compact controls slide up instead of fade in

What's Fixed:

  • Fixed RTL layout issues
  • Fixed elevation problems on the compact controls
  • Fixed issue where a seam would show up on the play icon on certain displays
  • Fixed issue where you could still collapse the toolbar on the search view with no results
  • Fixed issue where an album would not show up as playing if played from the artist UI

Dev/Meta:

  • Added fastlane metadata
  • Updated Exoplayer to 2.12.3
  • Updated Coil to 1.1.1
  • Updated support libraries to 1.3.0
  • Added architecture document
  • Simplified themes

v1.2.0

What's New

  • The detail UIs have been redesigned to show the Play and Shuffle options front-and-center
  • The Toolbars on the detail UIs have been made more visually appealing
  • Images on the detail UIs now have a shadow applied to them
  • Albums now have a "Go to artist" option in their menu
  • Navigation has been made much for fluid and straightforward
  • Search has been moved to a dedicated tab
  • Added option to filter searches by Song, Album, Artist, and Genre

What's Improved

  • The sorting menu is now a dedicated menu instead of an overflow menu, improving accessibility
  • Disk-Caching with Coil is now completely turned off
  • Tablet layouts have been made more visually appealing
  • Made the icons in the Playback UI look better
  • Queues are now properly sorted when not shuffled

What's Fixed

  • Fixed issue where audio focus would resume after an interruption even if explicitly paused by the user
  • Fixed a crash that would occur when a song with no genre was played from its genre
  • Fixed a crash that would occur from the settings being accessed before they were created
  • Fixed an issue where the keyboard will stay visible when navigating to something
  • Fixed multiple memory leaks
  • Fixed problem where the fast scroll indicator on the Songs UI would be slightly off
  • Fixed issue where rewinding wouldn't cause the playback to start again
  • Fixed problem where the artist play action wouldn't work

What's Changed

  • "Remember Shuffle" is now on by default

v1.1.0

What's New

  • Rewrote the music loading system to be much faster
  • Genres are now song-based instead of artist-based
  • When an album is being played, that album will be highlighted in the artist UI
  • If a song is playing from a genre, that song will be highlighted in the genre UI
  • Switched to a new audio focus system that allows for volume reduction & auto-resuming
  • Added option not to load cover art
  • Added option to ignore MediaStore cover art
  • Added option to play a song from its genre

What's Improved

  • Made Genre/Artist/Album UIs more efficient
  • Playback state restores are now more reliable if the music library changes
  • Optimized ExoPlayer for audio playback
  • Landscape support is now better for phones/tablets
  • Optimized how Coil is used
  • Items are now shown in two columns instead of three when a phone is in landscape

What's Fixed

  • Stop the play/pause button from animating on the Now Playing screen
  • Stopped coil from increasing the app size over time due to needless disk caching
  • Enabled constant bitrate seeking, allowing for AAC/certain MP3s to be seekable

What's Changed

  • Rewind threshold option has been removed
  • "Play from artist", "Play from album", and "Play from All Songs" have been removed from the song menu in favor of "Go to artist" and "Go to album"
  • The currently playing song on the Album UI will now only show if the song is actually playing from the album

v1.0.0

  • Initial release