From 1f09493ba2253eb234803b5ebe74ad1649253bb9 Mon Sep 17 00:00:00 2001 From: Albin Larsson Date: Sat, 16 Jun 2018 01:07:16 +0200 Subject: [PATCH 1/2] Captions: Handle uppercase input (like before) --- src/js/captions.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/js/captions.js b/src/js/captions.js index fd2692f7..d6666cf2 100644 --- a/src/js/captions.js +++ b/src/js/captions.js @@ -71,7 +71,7 @@ const captions = { const languages = dedupe(Array.from(navigator.languages || navigator.userLanguage) .map(language => language.split('-')[0])); - let language = this.storage.get('language') || this.config.captions.language; + let language = (this.storage.get('language') || this.config.captions.language || 'auto').toLowerCase(); // Use first browser language when language is 'auto' if (language === 'auto') { @@ -252,13 +252,14 @@ const captions = { // Set captions by language // Used internally for the language setter with the passive option forced to false - setLanguage(language, passive = true) { - if (!is.string(language)) { - this.debug.warn('Invalid language argument', language); + setLanguage(input, passive = true) { + if (!is.string(input)) { + this.debug.warn('Invalid language argument', input); return; } // Normalize - this.captions.language = language.toLowerCase(); + const language = input.toLowerCase(); + this.captions.language = language; // Set currentTrack const tracks = captions.getTracks.call(this); From 8f359adf9c510a2c4c5a9fc4ecea542c2b782083 Mon Sep 17 00:00:00 2001 From: Albin Larsson Date: Sat, 16 Jun 2018 01:23:47 +0200 Subject: [PATCH 2/2] Fix captions.toggle order --- src/js/captions.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/js/captions.js b/src/js/captions.js index d6666cf2..94500290 100644 --- a/src/js/captions.js +++ b/src/js/captions.js @@ -156,6 +156,12 @@ const captions = { // Update state and trigger event if (active !== toggled) { + // When passive, don't override user preferences + if (!passive) { + this.captions.active = active; + this.storage.set({ captions: active }); + } + // Force language if the call isn't passive and there is no matching language to toggle to if (!this.language && active && !passive) { const tracks = captions.getTracks.call(this); @@ -183,12 +189,6 @@ const captions = { // Update settings menu controls.updateSetting.call(this, 'captions'); - // When passive, don't override user preferences - if (!passive) { - this.captions.active = active; - this.storage.set({ captions: active }); - } - // Trigger event (not used internally) triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled'); } @@ -241,13 +241,13 @@ const captions = { triggerEvent.call(this, this.media, 'languagechange'); } + // Show captions + captions.toggle.call(this, true, passive); + if (this.isHTML5 && this.isVideo) { // If we change the active track while a cue is already displayed we need to update it captions.updateCues.call(this); } - - // Show captions - captions.toggle.call(this, true, passive); }, // Set captions by language