From 769b3dc00a9486cb1ee769b30994af4225522eed Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Thu, 27 Feb 2020 14:25:13 +0100 Subject: [PATCH] Only warn user once when Night Light is disabled --- src/modules/Nightlighter.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/modules/Nightlighter.js b/src/modules/Nightlighter.js index 0bc2823..838b26d 100644 --- a/src/modules/Nightlighter.js +++ b/src/modules/Nightlighter.js @@ -34,20 +34,22 @@ The Nightlighter establishes a connection with the session bus to get the current Night Light status. It listens to changes and reports them. As Night Light is essential for the extension to work, it continuously checks -if it is enabled and warns the user if that's not the case. +if it is enabled and warns the user if that's not the case. To not overwhelm +the user with notifications, it only warns once and then only listens to Night +Light changes to reactivate itself automatically. */ var Nightlighter = class { constructor() { log_debug('Initializing Nightlighter...'); + this.first_nightlight_not_enabled_warning = true; this.nightlight_gsettings = new Gio.Settings({ schema: config.NIGHTLIGHT_GSETTINGS_SCHEMA }); log_debug('Nightlighter initialized.'); } enable() { log_debug('Enabling NightLighter...'); - // As Night Light must be enabled for the extension to work, we have to monitor any change of that setting. try { this._listen_to_nightlight_status(); this._check_nightlight_status(); @@ -57,7 +59,9 @@ var Nightlighter = class { log_debug('Nightlighter enabled.'); } catch(e) { - main.notifyError(config.EXT_NAME, e.message); + if ( e.message ) { + main.notifyError(config.EXT_NAME, e.message); + } } } @@ -96,8 +100,14 @@ var Nightlighter = class { _check_nightlight_status() { if ( !this._is_nightlight_enabled() ) { - const message = _('Night Light must be enabled to use this extension. Please enable it in your system settings.'); - throw new Error(message); + if ( this.first_nightlight_not_enabled_warning ) { + this.first_nightlight_not_enabled_warning = false; + const message = _('Night Light must be enabled to use this extension. Please enable it in your system settings.'); + throw new Error(message); + } + else { + throw new Error(); + } } }