Skip to content

Commit

Permalink
Release 4.21.0 - April 11th, 2021
Browse files Browse the repository at this point in the history
  • Loading branch information
jiri-janousek committed Apr 11, 2021
2 parents 9904d45 + 155cb8c commit 96d9bdb
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 37 deletions.
57 changes: 57 additions & 0 deletions CHANGELOG.md
Expand Up @@ -7,6 +7,63 @@ Nuvola Player Changelog
[Nuvola Devel mailing list](https://groups.google.com/d/forum/nuvola-player-devel)
to receive more technical announcements and important information about future development.

Release 4.21.0 - April 11th, 2021
---------------------------------

This is a concise changelog. Refer to [Nuvola News](https://medium.com/nuvola-news) for a more verbose one and to see
some screenshots.

### What’s New for Users

* New script: Anghami. Maintainer: Jiří Janoušek • [Source code](https://github.com/tiliado/nuvola-app-anghami)

* Official support for Linux Mint, Cinnamon and Mate.e to test environment-specific integration issues.

* Spotify script 3.4
* Fix next and repeat actions. [[GitHub PR](https://github.com/tiliado/nuvola-app-spotify/pull/28)]
* Fix Google login. [[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/719)]
* Update metadata parsing.

* Tidal script 1.2
* Update metadata parsing. [[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/721)]

* Amazon Cloud Player script 5.12
* Add Japanese region support. [[GitHub ticket](https://github.com/tiliado/nuvola-app-amazon-cloud-player/issues/46)]

* Audible script 1.1
* Add national variants. [[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/708)]

* Primephonic script 1.1
* Fix Google login. [[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/719)]
* Update metadata parsing.

* Qobuz script 1.4
* Support Qobuz design v5.8.0-b021. [[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/715)]
* Added personalized icon set.
* Added support for seek.
* Improve support for stop.

* Pandora script is deprecated until logging in is fixed.
[[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/720)]

* Plex script is deprecated until it becomes compatible again.
[[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/631)]

* Bug fixes
* Fix wrong initial state of *Show sidebar* toggle
[[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/624)].
* Fix *Quit* action triggered with Media Player Remote Interface
[[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/696)].

* All Tiliado accounts from [https://tiliado.eu](https://tiliado.eu/) website have been deleted.

### Other changes

* Maintenance updates of various scripts.

* Add `--no-vapi-patch` configure option to build script.
[[GitHub ticket](https://github.com/tiliado/nuvolaplayer/issues/707)]

Release 4.20.0 - December 28, 2020
----------------------------------

Expand Down
3 changes: 3 additions & 0 deletions Makefile
Expand Up @@ -23,4 +23,7 @@ merge-devel:
&& git checkout $(DEVELOP_BRANCH) \
&& git merge --ff-only "$$b" \
&& git branch -d "$$b" \
&& git push origin -d "$$b" \
&& git fetch origin \
&& git remote prune origin \
&& git status -v
5 changes: 5 additions & 0 deletions src/nuvolakit-runner/AppRunnerController.vala
Expand Up @@ -448,6 +448,7 @@ public class AppRunnerController: Drtgtk.Application {
ah.simple_action("view", "win", Actions.ZOOM_RESET, "Original zoom", null, "zoom-original", "<ctrl>0", web_engine.zoom_reset),
};
actions.add_actions(actions_spec);
actions.get_action(Actions.TOGGLE_SIDEBAR).enabled = !main_window.sidebar.is_empty();
actions.get_action(Actions.GO_FORWARD).enabled = web_engine.can_go_forward;
actions.get_action(Actions.GO_BACK).enabled = web_engine.can_go_back;
}
Expand All @@ -461,6 +462,10 @@ public class AppRunnerController: Drtgtk.Application {
Timeout.add_seconds(5, () => {warning("Force quit after timeout."); GLib.Process.exit(0);});
}

public void exit() {
do_quit();
}

public void shutdown_engines() {
web_options.shutdown();
}
Expand Down
6 changes: 3 additions & 3 deletions src/nuvolakit-runner/components/mpris/MPRISApplication.vala
Expand Up @@ -26,9 +26,9 @@ namespace Nuvola {

[DBus(name = "org.mpris.MediaPlayer2")]
public class MPRISApplication: GLib.Object {
private Drtgtk.Application app;
private AppRunnerController app;

public MPRISApplication(Drtgtk.Application app) {
public MPRISApplication(AppRunnerController app) {
this.app = app;
string desktop_entry = app.desktop_name;
this.desktop_entry = desktop_entry[0:desktop_entry.length - 8];
Expand All @@ -51,7 +51,7 @@ public class MPRISApplication: GLib.Object {
}

public void quit() throws GLib.DBusError, GLib.IOError {
app.quit();
app.exit();
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/nuvolakit-runner/components/mpris/MPRISComponent.vala
Expand Up @@ -26,10 +26,10 @@ namespace Nuvola {

public class MPRISComponent: Component {
private Bindings bindings;
private Drtgtk.Application app;
private AppRunnerController app;
private MPRISProvider? mpris = null;

public MPRISComponent(Drtgtk.Application app, Bindings bindings, Drt.KeyValueStorage config) {
public MPRISComponent(AppRunnerController app, Bindings bindings, Drt.KeyValueStorage config) {
base(
config, "mpris", "Media Player DBus Interface",
"Implementation of Media Player Remote Interface Specification (MPRIS 2) used by various applets.",
Expand Down
4 changes: 2 additions & 2 deletions src/nuvolakit-runner/components/mpris/MPRISProvider.vala
Expand Up @@ -27,13 +27,13 @@ namespace Nuvola {
public class MPRISProvider {
private MediaPlayerModel player;
private uint owner_id = 0;
private Drtgtk.Application app;
private AppRunnerController app;
private MPRISApplication? mpris_app = null;
private MPRISPlayer? mpris_player = null;
private DBusConnection? conn = null;
private uint[] registered_objects = new uint[2];

public MPRISProvider(Drtgtk.Application app, MediaPlayerModel player) {
public MPRISProvider(AppRunnerController app, MediaPlayerModel player) {
this.player = player;
this.app = app;
}
Expand Down
34 changes: 6 additions & 28 deletions src/nuvolakit-runner/gui/AboutDialog.vala
Expand Up @@ -68,8 +68,7 @@ public class AboutDialog: Gtk.Dialog {
public const string TAB_ABOUT = "about";
public const string TAB_TIPS = "tips";
public const string TAB_STARTUP = "startup";
public const string TAB_TERMS = "terms";
public const int TERMS_VERSION = 1;
public const int TERMS_VERSION = 2;
public StartupView? startup {get; private set;}
public Gtk.Stack stack {get; private set;}
public Gtk.Grid grid {get; private set;}
Expand Down Expand Up @@ -101,30 +100,6 @@ public class AboutDialog: Gtk.Dialog {
if (startup != null) {
stack.add_titled(startup, TAB_STARTUP, "Start-Up");
}
#if FLATPAK
Gtk.Label terms = Drtgtk.Labels.markup(
"Nuvola Player is an open-source project. You can <a href=\"%1$s\">download the entire source code</a> "
+ "for free under the <a href=\"%2$s\">BSD-2-Clause license</a>. Feel free to study it, modify it, build "
+ "Nuvola for you, or even distribute it further.\n\n"
+ "The official flatpak builds of Nuvola require <a href=\"%3$s\">a purchase</a> to unlock some features "
+ "when a free trial period ends. We ask users for the payment to cover the project's expenses and to "
+ "provide them with support beyond the usual open-source standard. It also motivates us to focus on "
+ "quality and to develop Nuvola further even though some obstacles may seem too demanding.\n\n"
+ "By purchasing Nuvola, you tell us: \"Don't give up, we appreciate your work.\"\n\n\n"
+ "By using Nuvola, you agree with <a href=\"%4$s\">Tiliado Privacy Policy</a>. The short version is: "
+ "We collect only the data we need to provide you with our services. We don't sell your personal "
+ "information. If you have any questions, feedback or a data removal request, "
+ "don't hesitate to contact support: <a href=\"mailto:%5$s\">%5$s</a>",
"https://github.com/tiliado/nuvolaplayer",
"https://github.com/tiliado/nuvolaplayer/blob/master/LICENSE",
"https://nuvola.tiliado.eu/pricing/",
"https://tiliado.eu/privacy/",
"support@tiliado.eu");
terms.margin = 10;
terms.selectable = true;
terms.can_focus = false;
stack.add_titled(terms, TAB_TERMS, "Terms");
#endif

var switcher = new Gtk.StackSwitcher();
switcher.stack = stack;
Expand Down Expand Up @@ -250,9 +225,12 @@ public class AboutDialog: Gtk.Dialog {

public void show_terms() {
Gtk.Label label = Drtgtk.Labels.markup(
"You need to agree with <a href=\"%s\">Privacy Policy</a>.", "https://tiliado.eu/privacy/");
"You need to agree with <a href=\"%s\">Terms</a> and <a href=\"%s\">Privacy Policy</a>.",
"https://nuvola.tiliado.eu/terms/",
"https://tiliado.eu/privacy/"
);
label.yalign = 0.5f;
show_tab(TAB_TERMS);
show_tab(TAB_TIPS);
show_action(label, "Accept", Gtk.ResponseType.ACCEPT, Gtk.MessageType.INFO);
add_status_action("Decline", Gtk.ResponseType.REJECT);
present();
Expand Down
13 changes: 11 additions & 2 deletions wscript
Expand Up @@ -31,13 +31,13 @@ out = 'build'
APPNAME = SHORT_ID = "nuvolaruntime"
NUVOLA_BIN = "nuvola"
NUVOLACTL_BIN = "nuvolactl"
VERSION = "4.20.0"
VERSION = "4.21.0"
GENERIC_NAME = "Cloud Player"
BLURB = "Tight integration of web-based media streaming services with your Linux desktop"
DEFAULT_HELP_URL = "https://github.com/tiliado/nuvolaruntime/wiki/Third-Party-Builds"
DEFAULT_WEB_APP_REQUIREMENTS_HELP_URL = DEFAULT_HELP_URL

MIN_DIORITE = "4.20.0"
MIN_DIORITE = "4.21.0"
MIN_VALA = "0.48.0"
MIN_GLIB = "2.56.1"
MIN_GTK = "3.22.30"
Expand Down Expand Up @@ -333,6 +333,9 @@ def options(ctx):
dest='lint_js_auto_fix', help="Use JavaScript linter and automatically fix errors (dangerous).")
ctx.add_option('--no-strict', action='store_false', default=True,
dest='strict', help="Disable strict checks (e.g. fatal warnings).")
ctx.add_option(
'--no-vapi-patch', action='store_false', default=True, dest='patch_vapi',
help="Don't use a patched copy of system vapi files as needed but use them as is.")

def configure(ctx):
add_version_info(ctx)
Expand Down Expand Up @@ -446,6 +449,8 @@ def configure(ctx):
if ctx.env.LINT_JS:
ctx.find_program('standard', var='JSLINT')

ctx.env.PATCH_VAPI = ctx.options.patch_vapi

# For tests
ctx.find_program("diorite-testgen{}".format(TARGET_DIORITE), var="DIORITE_TESTGEN")

Expand Down Expand Up @@ -608,6 +613,10 @@ def build(ctx):
packages += " valacef valacefgtk"
uselib += " VALACEF VALACEFGTK"

if not ctx.env.PATCH_VAPI:
vapi_to_patch.clear()

# The vapi files are not patched in-place - the result is stored in our build directory.
for vapi in vapi_to_patch:
all_vapi_dirs = [path.format(vala=ctx.env.VALAC_SERIES) for path in (
'/app/share/vala-{vala}/vapi', '/usr/share/vala-{vala}/vapi', '/app/share/vala/vapi', '/usr/share/vala/vapi'
Expand Down

0 comments on commit 96d9bdb

Please sign in to comment.