===== Changes for Nuvola Player =====

Nuvola Player runs cloud music service web interface in its own window and provides
integration with Linux desktop (dock menus, sound menu, media players extension,
tray icon and notifications). It also remembers last session
and the current view (album, genre list, ...).

=== 2.5.0 - December 8th, 2014 ===

# Changes since version 2.4.0. Some fixes have already appeared in 2.4.x releases though.

New features:

  * Added Grooveshark Mobile (HTML5) service integration by Chase Colman <chase@colman.io>.
    (Closes: LP:1175088)

  * Added integration of Spotify by Chase Colman. (Closes: LP:1079648 )
 
  * Added Jango integration by Stefano Bagnatica. (Closes: LP:1009931)
 
  * Added support for Amazon Music Prime streaming. (Closes: LP:1333906, LP:1334022)
 
  * Grooveshark Inactivity pop-up window is automatically dismissed. Implemented by
    Ionică Bizău (Closes: LP:1214091)

  * Users with Nuvola Patrons membership are not bothered by a donate bar if they
    log in with they Tiliado account in preferences.

  * Updated translations.

Bug fixes:

  * Added work-around to get rid of "ABOUT protocol source missing" dialog. This issue
    is caused by [a bug in WebKitGtk](https://bugs.webkit.org/show_bug.cgi?id=133605).
    (Closes: LP:1320663)
  
  * Fixed thumbs up/down actions in Jango.
 
  * Fixed MPRIS memory leak and optimized metadata property. Then fixed a bug introduced
    by this change (MPRIS PropertiesChanges signal for Metadata property was not sent).
    (Closes: LP:1333343, LP:1336252)
  
  * Last FM: Update now playing only once on state/song change. (Closes: LP:1347990)
 
  * Updated Google Play Music country availabality. (Closes: LP:1349507)
 
  * Removed non-functional Service updates functionality. Updates will be included in Nuvola Player
    bug fix releases.

Developer stuff:
  
  * Disabled test suite failing under Fedora's mock tool. (Closes: LP:1327500)
 
  * Require json-glib-1.0 even if last.fm is disabled, because it is used also in other code.
    (Closes: LP:1341462)

  * Fixed build error with Valac 0.25.2: error: Too few arguments for specified format
    throw new Error.WRONG_RESPONSE("%s: Response doesn't contain nowplaying member.");
    (Closes: LP:1363381)

  * Disabled Nuvola.JSApiTest, because it crashes because of JavaScriptCore issues.
 
=== 2.4.0 - May 31, 2014 ===

# Changes since version 2.3.0. Some fixes have already appeared in 2.3.x releases though.

Google Play Music:

 * Version increased to 4.11. 
 
 * Removed broken Hide Google+ buttons feature, because Google changes the code too often.
 
 * Service settings are applied instantly without reload.
 
 * Fixed pause and toggle play/pause actions. (Closes: LP:1282346, LP:1321820)
 
 * Added warning about compatibility issue with desktop notifications for Chrome.
  (Closes: LP:1314753)
  
 * Added in-page navigation buttons. The buttons are inserted in the top bar next to the
   Google Play logo.

Rdio:

  * Version increased to 3.2.
  
  * Added in-page navigation buttons. The buttons are inserted in the top bar next to the rdio logo.
   (Closes: LP:1212167)

New services:

  * Logitech Media Server by Steffen Coenen. (Closes: LP:1010973)
  
  * This is my jam by Jan Vlnas. (Closes: LP:1310616)
  
User interface:
   
  * Implemented support for back/forward mouse buttons.
  
  * Fix support for actionable notification in GNOME lock screen. (Closes: LP:1305992)
  
  * Updated translations from Launchpad.

Stability:

  * Fixed many JavaScript crashes because of invalid JavaScript API objects. (Closes: LP:1263705)
 
  * Document viewer cache model of WebKit is no longer used, because it has been found to cause a
    huge memory usage. (Closes: LP:1275002)
  
Developers:

 * Implemented JavaScript API for user interface actions. It can be used to create associated custom
   in-page buttons for these actions. (Closes: LP:1265290)
 
 * Version of JSApi increased to to 2.3.
 
 * Added helper JavaScript functions to add and remove CSS stylesheets:
   Nuvola.addStyleSheet() and Nuvola.removeStyleSheet().
 
  * Tool to manage package database (package_db.py) recognizes JavaScript API 2.3.
  
  * Tool to create service packages (make_service_package.sh) got one new argument: path to service
    updates directory.
    
  * Tool to create service packages (make_service_package.sh) supports multiline changelog.
  
  * Unstable builds use user data and config directories with suffix "unstable".
  
  * Fixed build error with Vala compiler 0.24 (Closes: LP:1296261)
  
  * Added tool WebKitGtk Frame for debugging WebKitGtk compatibility.
  
  * Updated translation template

=== 2.3.0 - December 24, 2013 ===

# Changes since version 2.2.0

* Google Play 4.4: fix sandbox pattern to enable Flash object for playback.
  (Closes: LP:1245748)

* Added donation bar.

* Google Play 4.5: Fix next/previous action broken by a recent web app update.
  (Closes: LP:1251683)

* Updated VAPI files and added libnotify.vapi from Vala 0.22.1 tarball to fix build error.
  (Closes: LP:1258962)

* Semiautomatic updates of service integrations providing hot fixes hot fixes for breakages
  caused by sudden changes in a web interface of streaming services. (Closes: LP:1254408)

* Improved detection of Flash and GStreamer issues with links to the new help site. JavaScript
  API was given methods to check format support and version was increased to 2.2.
  (Closes: LP:1254445)

=== 2.2.0 - September 14, 2013 ===

# Changes since version 2.1.0.

* Added scrobbling to Libre.fm. (Closes: LP:1043795)

* File INSTALL: Added information how to run Nuvola Player from source
  directory. (Closes: LP:1217942)

* File downloads have been enabled and a simple downloads manager has been
  created. (Closes: LP:1211287)

* Last.fm love and ban actions are available from the main menu (control),
  tray icon and Unity quick list. (Closes: LP:1037740)

* New service: Bandcamp. (Closes: LP:1024017)

* Google Play: Fixed detection of playback status.

* Google Play: Enable links to song downloading.

* Updated translations.

* Updated translations template.

* Deezer: Fixed metadata and playback status parsing. (Closes: LP:1222872)

=== 2.1.0 - August 24, 2013 ===

# Changes since version 2.1 Beta 2.

* Grooveshark: Added information about issue with WebKitGtk 1.8.x.

* Removed deprecated code from service descriptions.

* Updated translations.

=== 2.1 Beta 2 - August 17, 2013 ===

# Changes since version 2.1 Beta 1.

* Google Play: Updated country availability.

* Google Play: Added information about issue with GStreamer 1.0.x.

* Don't remember and use small window size. (Closes: LP:1182567)

* Added tabs with details about HTML5 Audio and Flash plugin to Format support
  dialog.

* Updated translations.

* Updated template for translations.

=== 2.1 Beta 1 - August 09, 2013 ===

# Changes since version 2.0.0.

* Fixed bug when configuration was not saved with buids without debugging
  symbols. (Closes: LP:1057696)

* MPRIS extension: Renamed to Remote Player Interface.

* nuvolaplayer-client provides better error message when MPRIS interface is not
  enabled. (Closes: LP:1054548)

* Nuvola Player loads only a compatible flash plugin wrapped with
  nspluginwrapper. See FAQ #2107 for details. (Closes: LP:1058586)
  https://answers.launchpad.net/nuvola-player/+faq/2107

* Rdio: Flash plugin is not required.

* Lyrics extension: Split diacritics from letters when creating AZLyrics name.
  (Closes: LP:1064042)

* Amazon Cloud Player: Support more countries. (Closes: LP:1059020)

* New service Deezer. (Closes: LP:1010117, LP:1066300)

* Refactoring of codebase, extension of unit tests, splitting to nuvolaplayer
  binary and libnuvolaplayer-private library, removed legacy code.

* Notifications extension: Added support for actions and resident notifications.
  (Closes: LP:968619)

* Context menu of a web view is populated with custom actions.

* Tools make_service_package.sh updated to produce packages in format 2.

* Diorite: SimpleDocBuffer and SimpleDocView for rendering of simple HTML-like 
  documents with native GTK+ look.

* Upgraded Waf build system to 1.7.6.

* Anti-underlinking and anti-overlinking linker flags are used during the build
  process.

* Service selector is opened in a separate window and uses native GTK+ widgets
  instead of web view. GTK+ zoom level is respected and non-free screenshots
  are not loaded. (Closes: LP:1076137, LP:1076134)

* Added check for MP3 support in GStreamer. New dependency has been introduced:
  gstreamer0.10 (>= 0.10) or gstreamer1.0.

* Fixed Last.fm name. (Closes: LP:954702)

* Description of extensions is in a simple HTML-like syntax.

* Copies of various vapis are used to prevent breakages.

* Thumbs UP/Down actions shouldn't toggle status. (Closes: LP:1063426)

* Run-in-background feature no longer requires tray icon. (Closes: LP:1079339)

* Web view respects text zoom factor and remembers zoom level per service
   (Closes: LP:1051218)

* Last.fm extension: Added switches to disable scrobbling for particular
  services. (Closes: LP:1049474)

* Google Play: Fixed links "Shop this artist" and related to be opened
  in a default web browser. (Closes: LP:1095739)

* User interface: Added option to prefer dark GTK+ theme.

* Notifications: Pass actual album art image data over dbus instead of
  a filename to prevent caching. (Closes: LP:1099825)

* 8tracks: Service integration was adopted by Michael J Coyne. Fixed
  breakage (alert loop) caused by a change in 8tracks web interface.
  (Closes: LP:1035490, LP:1127488)

* Google Play: Fixed resolving of a name and an artist of the current
  song. (Closes: LP:1138576)

* Amazon Cloud Player: Recent changes in Amazon Cloud Player introduced
  Amazon marketing redirect. Sandbox pattern has been updated to reflect these
  changes. (Closes: LP:1134756)

* Rdio 3.0: Service integration was adopted by Michael Mims and relicensed
  under 2-Clause BSD license. Service switched to Flash-based playback
  instead of HTML5. Fixed low initial volume. Fixed resolving of the current
  artist and song. (Closes: LP:1049253, LP:1165388, LP:1156591)

* Updated copyright information.

* Services selector: If the currently running service is upgraded/downgraded it
  is immediately reloaded, so it isn't necessary to restart Nuvola Player.
  (Closes: LP:1175141)

* Updated URL of a download page for update packs.

* Google Play: Google Play web interface has been changed many times introducing
  breakages in Hide Google bar feature, parsing of song details, playback status
  and available actions. (Closes: LP:1189370, LP:1189851, LP:1194122,
  LP:1194601)

* Google Play: Google Play UI has changed and shows also album name of the
  current song,so it's possible to pass it to Nuvola core. (Closes: LP:853719)

* Google Play: Flash plugin has been enabled, because Google Play Music All
  Access feature requires it (HTML5 audio is not supported).
  (Closes: LP:1181307)

* Google Play: Also added reason why all store links are opened in a default
  web browser.

* 8tracks: updated metadata parsing. (Closes: LP:1167378)

* PopupWebView: Pop-up windows were sometimes unusable, because page area was tiny
  and rest of the window was empty. (Closes: LP:1181950)

* Added information about format support.

* Added option to specify directory where to search for integrations.

* Extensions: Almost all extensions are enabled by default.

* MPRIS can-go-next/prev actions weren't updated because of a bug.
  (Closes: LP:1183640)

* The Google Music interface had a space between the play controls and
  the bottom of the app when "Hide Google Bar" is checked. Fixed.
  (Closes: LP:1189851)

* Introduced Nuvola Player JavaScript API 2.1.

* New extension: Developer's bar.

* Google Play: Fixed detection of playback status. (Closes: LP:1194122)

* Google Play: Fixed thumbs up/down actions broken by recent Google Play web ui
  update. (Closes: LP:1194601)

* Service is reloaded after installation/removal of an update package.
  (Closes: LP:1175141)

* Added option to specify gee version, --with-gee, defaults to 1.0.

* Google Play: Added country availabilty details.

* Added script to setup shell environment for developers.

* Google Play: Added playback requirements to description.

* Google Play: Fix that small red notification box. (Closes: LP:1198486)

* Removed UI modes "toolbar only" and "both toolbar and menubar". Main menu
  reorganized.

* Added a few keyboard shortcuts: Go back <shift><alt>Left and go forward
  <shift><alt>Right.

* Simplified build script, see file INSTALL for details.

* Added templete of new service integration.

* Added hack that allows user to disable GStreamer for a particular service.
  (Closes: LP:1200818)

=== 2.0.0 - September 17, 2012 ===

# Changes since 1.0.5

# Pre-release Beta 1 - July 24, 2012

 * Added auto-play feature to start playback on start-up.
   (Closes LP:929356.)
 * Introduced commandline interface to control Nuvola Player
   (nuvolaplayer-client).
 * Created Elementary-like toolbar item for menu. (Closes LP:927283.)
 * Introduced API for extensions. However, only built-in extension are
   supported, run-time extensions will be supported in next cycle.
 * Added Last.FM scrobbling built-in extension. (Closes LP:836111.)
 * Added Lyrics fetcher built-in extension. (Closes LP:893192.)
 * Added option to set size of cache for remote data and to disable cache.
   This is located in tab Advandced in Preferences dialog.
 * Added web plugin blocker.
 * Added Switch service button to toolbar.
 * Tray Icon became built-in extension.
 * Dock Manager integration became built-in extension.
 * Unity Quick List integration became built-in extension.
 * MPRIS interface became built-in extension.
 * Media keys management became built-in extension.
 * New service selector. (Closes LP:1001671.)
 * Dropped support for user scripts.
 * Dropped support for Maverick version of Ubuntu Indicator.
 * Added service support for Amazon Cloud Player by Michael Mims.
 * Added support for dynamic HTTP(S) proxy resolver.
 * Introduced Nuvola Player JavaScript API 2.0 with API 1.x compatibility
   layer for old service integrations.
 * Troubleshooting actions moved to Preferences dialog, tab Advanced.
 * Added `nuvolaplayer.wrapper` script to run Nuvola Player from source
   directory.
 * Majority of a code relicensed under BSD 2-Clause license.
 * User interface ported to GTK+ 3. (Closes LP:958154.)
 * Only toolbar is shown by default.
 * Added option to hide Google bar in Google Play Music.
   (Closes LP:892055.)
 * Removed "-Q/--quit" command line argument, use
   `nuvolaplayer-client quit` instead.
 * Bumped dependencies, see INSTALL for details.
 * Completely changed build options, run `./waf features` or `./waf --help`
   for details.
 * Services can specify whether they need Flash plugin.
 * Notifications are not shown when window is active. (Closes LP:986104.)

# Pre-release Beta 2 - August 6, 2012

 * Debugging extension appends Audio Support and Flash Support tests
   to the menu.
 * Added logging of HTTP communication, but is disabled by default.
   Use flag --debug-http to turn it on.
 * Added link to audio playback requirements and info about a need
   of MP3 decoder. (Closes LP:1029254.)
 * Fixed too early destruction of the main NP JS object.
   (Closes: LP: 1030034.)
 * Last.fm: periodically send update-now-playing request.
   (Closes LP:1030377.)
 * MPRIS: Fixed regression: Album art was not updated. (Closes LP:1030419.)
 * Fixed regression: Icon name was used instead of icon path for album art.
 * Default user interface mode changed to to show both tool bar and menu
   bar.
 * Google Play Music: Added option not to pause playback due to inactivity.
 * Services 8tracks, Grooveshark and Hype Machine are orphaned.
 * Updated the Amazon integration script to the 2.0 API and relicensed
   (BSD-2-Clause).
 * Added Add/Remove service functionality.

# Pre-release Beta 3 - August 30, 2012

 * Refactoring of HTTP cache management.
 * Lyrics: More sophisticated removal of HTML tags. (Closes: LP:1034265.)
 * Tweaked Preferences dialog.
 * Last.fm scrobbling is asynchronous.
 * Lyrics fetching is asynchronous.
 * Updated translations.
 * Rdio: Fixed metadata fetching. (Closes: LP:1037880.)
 * Added service icons by Alexander King.
 * Fixed various build errors with older libraries or Vala compiler.
 * Dependencies were increased again, see file INSTALL for details.
 * Tweaked build script.
 * Pandora, 8tracks and Hype Machine integration relicensed under 2-Clause
   BSD license.
 * Lyrics: Slightly refactored, replaced GPL code with 2-Clause
   BSD-licensed code.
 * Removed support for SOCKS proxy, depends on library licensed under GPL.
 * Translations relicended under 2-Clause BSD license.
 * Updated manual pages.

# Pre-release Beta 4 - September 7, 2012

 * Reintroduced support for SOCKS proxy.
 * Small test suite is shipped with Nuvola Player.
 * Nuvola icons relicensed under CC BY 3.0.
 * Minor artwork changes.
 * Default user interface mode is toolbar-only.
 * Pre-release builds have their status in application name.

# Final release - September 17, 2012

 * Use full content zoom instead of text-only zoom. (Closes LP:1051216.)

=== 1.0.2 - February 13, 2012 ===

Bug fix release. Changes since 1.0.1:

 * Updated link to development changelog
 * Track GNOME/XFCE session to quit properly. Fixes lp:909430
 * Cache is no longer flushed to disk, only dumped.
 * Executable rsvg-convert is used instead of rsvg to generate PNG images
   from SVG source images
 * Fixed Google Music sandbox pattern. Fixes lp:928535
 * Updated field "maintainer_link" of services' metadata.
 * Updated translations.

=== 1.0.1 - January 4, 2012 ==

Bug fix release with patches from Debian Mentors review process. Changes since 1.0.0:

 * Removed build flags --with-unity-quick-list, --with-browser-cache
   and --deprecated-ppa.
 * PNG files are generated from source SVG files. New build dependency: rsvg
 * Removed deprecated Encoding field in desktop file
 * Clean-up and fixed typo
 * VAPI for Gee shipped with Nuvola Player is used only for libgee < 0.6
 * Unsupported MPRIS properties are not exported.
 * Crash dialog has option to disable crash dialog.
 * Updated translations.


=== 1.0 - December 23, 2011 ===

Feature release. Changes since 0.3.2:

 * The core has been rewritten to supports multiple services and all service-specific data
   are stored in separate files outside the core of the application and are loaded
   in run time.
 * Added integration of Grooveshark
 * New icon by Arturo Torres Sánchez
 * Application renamed to Nuvola Player
 * Changed format of source tarball (tar.gz)
 * Added integration of 8tracks.com by Janez Troha
 * Added menu bar, reworked tool bar. Fixes lp:892041
 * New tool bar/menu bar actions were added: playback controls, back/forward buttons
   for navigation and zoom controls.
 * Added integration of Hype Machine by Janez Troha
 * Created JavaScript API to facilitate communication between JavaScript and Vala code.
 * Added option to turn off notifications. Fixes lp:894121
 * Album name is shown in notifications and MPRIS interface if supported
   by service. Partially fixes lp:853719
 * Added option to set visibility of tray icon. Fixes lp:890140
 * Changes in the Preferences dialog are applied immediately
 * Added SOCKS proxy support via TSOCKS library. Fixes lp:897913
 * Fixed build error for WebKitGTK >= 1.5. Fixes lp:897971
 * The main windows remembers maximization.
 * All service-specific code was removed from Vala code. New services can be added
   by providing integration script and metadata. No need to restart or even recompile
   Nuvola Player.
 * Added Help button to the Preferences dialog.
 * Created Nuvola Crash Dialog
 * DockManager tweaked to get rid of lags (especially with dockbarx).
 * Added simple user scripts settings
 * Added link to Twitter profile
 * Added Welcome bar for the first run of the new release.
 * Added SIGTERM, SIGINT and SIGHUP signal handlers to properly quit application.
 * Rewritten configuration backend.


=== 0.3.2 - November 21, 2011 ===

Bug fix release. Changes since 0.3.0:

 * Added translations (Catalan, Catalan (Valencia), Czech, German,
   English (United Kingdom), Spanish, Estonian, Finnish, French, Interlingua, Polish,
   Portuguese, Slovenian and Swedish)
 * Added credits for translators and artists.
 * Added workaround for Sound indicator timeout error.

=== 0.3.1 - November 20, 2011 ===

Skipped.

=== 0.3 - November 13, 2011 ===
 
 * Added TrayIcon for environments without Ubuntu Sound Indicator. Fixes lp:855061
 * Added entry for GNOME default applications settings. Fixes lp:870777
 * Added toolbar with Home/Refresh/Troubleshooting/Settings/About/Quit buttons
 * Added debug symbols to development builds
 * Fixed crash when using a Pause key binding
 * Added About GMF dialog
 * Added Settings dialog
 * Added Thumbs Up/Down actions to helpers. Fixes lp:872784
 * Added Troubleshooting dialog for solving some issues
 * Support for browser cache.
 * Support for gettext translations
 
=== 0.2.2 - October 25, 2011 ===

Bug fix release. Changes since 0.2.1:

 *  Fixed issue when Google Music got Google+ notifications causing opening
    of a new browser window.
 
=== 0.2.1 - September 19, 2011 ===

Bug fix release. Changes since 0.2.0:

 *  Fixed lp:853418 -- Can't login to Google Music
 
=== 0.2 - September 18, 2011 ===

Feature release. Changes since 0.1.0:

 *  Binary name changed to "googlemusicframe" because of Maverick sound indicator issues
 *  Secured connection (HTTPS protocol) is used by default.
 *  New icon by Alexander King
 *  DockManager integration
 *  Unity Launcher integration
 *  Improved compatibility with Desktop Enviroments which don't support
    the sound menu. Fixes lp:835432
 *  Support for multimedia keys. Fixes lp:835438
 *  New window requests are opened in the default web browser. Fixes lp:848479
 *  Vala 0.13 compatibility (default version in Ubuntu Oneiric). Fixes lp:836071
 *  Support for user scripts (however, greasemoneky scripts have to be ported)
 *  More flexible build process, refactored code
 *  libfenryxo more separated
 

=== 0.1 - August 27, 2011 ===

Initial release

 *  Frame for Google Music web interface.
 *  Ubuntu Sound menu integration.
 *  Notifications when song is changed.
 *  Automatic and manual HTTP proxy support
 *  Cookie storage to remember current session of web interface
 *  Last view (album, genre list, ...) is restored after start-up.

