From 97cf38e5012cca2e6d745c9805417709e75aea21 Mon Sep 17 00:00:00 2001 From: Adrian Tombu Date: Sat, 12 Jan 2019 12:54:06 +0100 Subject: [PATCH 1/3] Toggle the sound notifications --- src/renderer/lib/sound.js | 12 ++++++++++++ src/renderer/lib/state.js | 1 + src/renderer/main.js | 1 + src/renderer/pages/preferences-page.js | 22 ++++++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/src/renderer/lib/sound.js b/src/renderer/lib/sound.js index a31aa2ce..0bcfe077 100644 --- a/src/renderer/lib/sound.js +++ b/src/renderer/lib/sound.js @@ -1,4 +1,5 @@ module.exports = { + init, play } @@ -8,6 +9,9 @@ const path = require('path') const VOLUME = 0.25 +// App state to access the soundNotifications preference +let state + /* Cache of Audio elements, for instant playback */ const cache = {} @@ -46,7 +50,15 @@ const sounds = { } } +function init (appState) { + state = appState +} + function play (name) { + if (!state.saved.prefs.soundNotifications) { + return + } + let audio = cache[name] if (!audio) { const sound = sounds[name] diff --git a/src/renderer/lib/state.js b/src/renderer/lib/state.js index 0a554772..4ac7f34a 100644 --- a/src/renderer/lib/state.js +++ b/src/renderer/lib/state.js @@ -121,6 +121,7 @@ function setupStateSaved (cb) { openExternalPlayer: false, externalPlayerPath: null, startup: false, + soundNotifications: true, autoAddTorrents: false, torrentsFolderPath: '', highestPlaybackPriority: true diff --git a/src/renderer/main.js b/src/renderer/main.js index 887fb4db..4d9d18ef 100644 --- a/src/renderer/main.js +++ b/src/renderer/main.js @@ -74,6 +74,7 @@ function onState (err, _state) { window.dispatch = dispatch telemetry.init(state) + sound.init(state) // Log uncaught JS errors window.addEventListener( diff --git a/src/renderer/pages/preferences-page.js b/src/renderer/pages/preferences-page.js index 687af900..96df6f98 100644 --- a/src/renderer/pages/preferences-page.js +++ b/src/renderer/pages/preferences-page.js @@ -26,6 +26,9 @@ class PreferencesPage extends React.Component { this.handleStartupChange = this.handleStartupChange.bind(this) + + this.handlesoundNotificationsChange = + this.handlesoundNotificationsChange.bind(this) } downloadPathSelector () { @@ -205,6 +208,22 @@ class PreferencesPage extends React.Component { ) } + soundNotificationsCheckbox () { + return ( + + + + ) + } + + handlesoundNotificationsChange (e, isChecked) { + dispatch('updatePreferences', 'soundNotifications', isChecked) + } + handleSetDefaultApp () { dispatch('updatePreferences', 'isFileHandler', true) } @@ -231,6 +250,9 @@ class PreferencesPage extends React.Component { {this.setDefaultAppButton()} {this.setStartupSection()} + + {this.soundNotificationsCheckbox()} + ) } From 03de09fcafffce0a36616b3bbb5b804c84a27660 Mon Sep 17 00:00:00 2001 From: Adrian Tombu Date: Sun, 13 Jan 2019 11:17:46 +0100 Subject: [PATCH 2/3] Preference page cleaning --- src/renderer/pages/preferences-page.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/renderer/pages/preferences-page.js b/src/renderer/pages/preferences-page.js index 96df6f98..70ce49a0 100644 --- a/src/renderer/pages/preferences-page.js +++ b/src/renderer/pages/preferences-page.js @@ -189,22 +189,20 @@ class PreferencesPage extends React.Component { dispatch('updatePreferences', 'startup', isChecked) } - setStartupSection () { + setStartupCheckbox () { if (config.IS_PORTABLE) { return } return ( - - - - - + + + ) } @@ -214,7 +212,7 @@ class PreferencesPage extends React.Component { ) @@ -249,8 +247,8 @@ class PreferencesPage extends React.Component { {this.setDefaultAppButton()} - {this.setStartupSection()} - + + {this.setStartupCheckbox()} {this.soundNotificationsCheckbox()} From a48c09e688f4ef3472ebccd2aeb678b6337332c4 Mon Sep 17 00:00:00 2001 From: Mathias Rasmussen Date: Sun, 13 Jan 2019 22:25:11 +0100 Subject: [PATCH 3/3] migrate sound option --- src/renderer/lib/migrations.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/renderer/lib/migrations.js b/src/renderer/lib/migrations.js index ece7125d..74a3f651 100644 --- a/src/renderer/lib/migrations.js +++ b/src/renderer/lib/migrations.js @@ -28,6 +28,7 @@ function run (state) { if (semver.lt(version, '0.14.0')) migrate_0_14_0(saved) if (semver.lt(version, '0.17.0')) migrate_0_17_0(saved) if (semver.lt(version, '0.17.2')) migrate_0_17_2(saved) + if (semver.lt(version, '0.21.0')) migrate_0_21_0(saved) // Config is now on the new version state.saved.version = config.APP_VERSION @@ -206,3 +207,10 @@ function migrate_0_17_2 (saved) { } catch (err) {} } } + +function migrate_0_21_0 (saved) { + if (saved.prefs.soundNotifications == null) { + // The app used to always have sound notifications enabled + saved.prefs.soundNotifications = true + } +}