=======
.. note::
This version does not have a Flatpak due to issues getting Python 3.8 working
within the Flatpak environment. See `Issue 218
<https://gitlab.com/sublime-music/sublime-music/-/issues/218_>`_
.. warning::
This version is not compatible with any previous versions. If you have run a
previous version of Sublime Music, please delete your cache (likely in
``~/.local/share/sublime-music``) and your existing configuration (likely in
``~/.config/sublime-music``) and re-run Sublime Music to restart the
configuration process.
Features
--------
**Improvements to configuring Music Sources**
* The mechanism for adding new *Music Sources* (the *Server* nomenclature has)
been dropped in favor of the more generic *Music Source*) has been totally
revamped. It now is a multi-stage dialog that will (in the future) allow you
to connect to more than just Subsonic-compatible servers.
* The configuration form for Subsonic is no longer just a massive list of
options. Instead, there is an "Advanced Settings" section that is collapsed by
default.
* The configuration dialog automatically checks if you can connect to the server
and shows you any errors which means there is no need to click "Test
Connection to Server" any more!
* Adding and removing music sources is now done directly in the server popup
(see below for details).
**Offline Mode**
* You can enable *Offline Mode* from the server menu.
* Features that require network access are disabled in offline mode.
* You can still browse anything that is already cached offline.
**Albums Tab Improvements**
* The Albums tab is now paginated with configurable page sizes.
* You can sort the Albums tab ascending or descending.
* Opening an closing an album on the Albums tab now has a nice animation and the
album details panel is visually inset.
* The "Go to Album" functionality from the context menu is much more reliable.
* The album results can now be served from the cache much more often meaning
less latency when trying to load albums (this is a byproduct of the Offline
Mode work).
**Player Controls**
* The amount of the song that is cached is now shown while streaming a song.
* The notification for resuming a play queue is now a non-modal notification
that pops up right above the player controls.
**New Icons**
* The Devices button now uses the Chromecast logo. It uses a different icon
depending on whether or not you are playing on a Chromecast.
* Custom icons for "Add to play queue", and "Play next" buttons. Thanks to
`samsartor`_ for contributing the SVGs!
* A new icon for indicating the connection state to the Subsonic server.
Contributed by `samsartor`_.
* A new icon for that data wasn't able to be loaded due to being offline.
Contributed by `samsartor`_.
.. _samsartor: https://gitlab.com/samsartor
**Application Menus**
* **Settings**
* Settings are now in the popup under the gear icon rather than in a separate
popup window.
* **Downloads**
* A new Downloads popup shows the currently downloading songs.
* You can now cancel song downloads and retry failed downloads.
* You can now clear the cache (either the entire cache or just the song files)
via options in the Downloads popup.
* **Server**
* A new Server popup shows the connection state to the server in both the icon
and the popup.
* You can enable *Offline Mode* from this menu.
* You can edit the current music source's configuration, switch to a different
music source, or add a whole new music source via this menu.
**Other Features**
* You can now collapse the Artist details and the Playlist details so that you
have more room to view the actual content.
Under The Hood
--------------
This release has a ton of under-the-hood changes to make things more robust
and performant.
* The cache is now stored in a SQLite database.
* The cache and configuration no longer get corrupted when Sublime Music fails
to write to disk due to errors.
* A generic `Adapter API`_ has been created which means that Sublime Music is no
longer reliant on Subsonic. This means that in the future, more backends can
be added.
.. _Adapter API: https://sublime-music.gitlab.io/sublime-music/adapter-api.html