summaryrefslogtreecommitdiff
path: root/ext/bg/js/settings/audio.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-05-30 09:33:13 -0400
committerGitHub <noreply@github.com>2020-05-30 09:33:13 -0400
commit63a3e56367b95f7ea64a5701d17179de60ed8718 (patch)
treefc811028b127abf9c1ff1dbdbb4663ba70b60649 /ext/bg/js/settings/audio.js
parent1a5a37c9e47dc4d1f1e1b3ffaf990e792140b912 (diff)
Use SettingsController (#576)
* Use settingsController internally in settings/main.js * Replace modifyingProfileChange with SettingsController.optionsContextChanged * Update ClipboardPopupsController to use SettingsController * Store reference to checkbox * Use this._settingsController for everything * Change where current profile is initially assigned from * Remove some unnecessary async calls * Move setup calls * Update AnkiTemplatesController to use SettingsController * Cache default field templates * Update AnkiController to use SettingsController * Update AudioController to use SettingsController * Update SettingsBackup to use SettingsController * Update DictionaryController to use SettingsController * Update GenericSettingController to use SettingsController * Update ProfileController to use SettingsController * Remove unused * Remove unused * Replace some uses of api.options* functions * Fix missing awaits * Fix invalid function
Diffstat (limited to 'ext/bg/js/settings/audio.js')
-rw-r--r--ext/bg/js/settings/audio.js33
1 files changed, 20 insertions, 13 deletions
diff --git a/ext/bg/js/settings/audio.js b/ext/bg/js/settings/audio.js
index 5c1cb131..1a41a498 100644
--- a/ext/bg/js/settings/audio.js
+++ b/ext/bg/js/settings/audio.js
@@ -17,13 +17,11 @@
/* global
* AudioSystem
- * getOptionsContext
- * getOptionsMutable
- * settingsSaveOptions
*/
class AudioController {
- constructor() {
+ constructor(settingsController) {
+ this._settingsController = settingsController;
this._audioSystem = null;
this._settingsAudioSources = null;
this._audioSourceContainer = null;
@@ -37,27 +35,36 @@ class AudioController {
useCache: true
});
- const optionsContext = getOptionsContext();
- const options = await getOptionsMutable(optionsContext);
-
- this._settingsAudioSources = options.audio.sources;
this._audioSourceContainer = document.querySelector('.audio-source-list');
this._audioSourceAddButton = document.querySelector('.audio-source-add');
this._audioSourceContainer.textContent = '';
this._audioSourceAddButton.addEventListener('click', this._onAddAudioSource.bind(this), false);
- for (const audioSource of toIterable(this._settingsAudioSources)) {
- this._createAudioSourceEntry(audioSource);
- }
-
this._prepareTextToSpeech();
+
+ this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));
+
+ this._onOptionsChanged();
}
// Private
+ async _onOptionsChanged() {
+ const options = await this._settingsController.getOptionsMutable();
+
+ for (const entry of [...this._audioSourceEntries]) {
+ this._removeAudioSourceEntry(entry);
+ }
+
+ this._settingsAudioSources = options.audio.sources;
+ for (const audioSource of toIterable(this._settingsAudioSources)) {
+ this._createAudioSourceEntry(audioSource);
+ }
+ }
+
async _save() {
- await settingsSaveOptions();
+ await this._settingsController.save();
}
_prepareTextToSpeech() {