Move internal event listeners for captions with direct handling in the captions object

This commit is contained in:
Albin Larsson 2018-06-14 16:10:36 +02:00
parent fa5d0ad316
commit 6ce9a94932
2 changed files with 19 additions and 20 deletions

View File

@ -128,6 +128,7 @@ const captions = {
} }
}, },
// Used internally for toggleCaptions()
toggle(input) { toggle(input) {
// If there's no full support // If there's no full support
if (!this.supported.ui) { if (!this.supported.ui) {
@ -146,10 +147,19 @@ const captions = {
// Update state and trigger event // Update state and trigger event
if (active !== this.captions.active) { if (active !== this.captions.active) {
this.captions.active = active; this.captions.active = active;
triggerEvent.call(this, this.media, this.captions.active ? 'captionsenabled' : 'captionsdisabled');
// Update UI
controls.updateSetting.call(this, 'captions');
// Save to storage
this.storage.set({ captions: active });
// Trigger event (not used internally)
triggerEvent.call(this, this.media, active ? 'captionsenabled' : 'captionsdisabled');
} }
}, },
// Used internally for currentTrack setter
set(index, setLanguage = true, show = true) { set(index, setLanguage = true, show = true) {
const tracks = captions.getTracks.call(this); const tracks = captions.getTracks.call(this);
@ -187,7 +197,13 @@ const captions = {
this.embed.enableTextTrack(language); this.embed.enableTextTrack(language);
} }
// Trigger event // Update UI
controls.updateSetting.call(this, 'captions');
// Save to storage
this.storage.set({ language });
// Trigger event (not used internally)
triggerEvent.call(this, this.media, 'languagechange'); triggerEvent.call(this, this.media, 'languagechange');
} }
@ -202,6 +218,7 @@ const captions = {
} }
}, },
// Used internally for language setter
setLanguage(language, show = true) { setLanguage(language, show = true) {
if (!is.string(language)) { if (!is.string(language)) {
this.debug.warn('Invalid language argument', language); this.debug.warn('Invalid language argument', language);

View File

@ -387,24 +387,6 @@ class Listeners {
controls.updateSetting.call(this.player, 'quality', null, event.detail.quality); controls.updateSetting.call(this.player, 'quality', null, event.detail.quality);
}); });
// Caption language change
on.call(this.player, this.player.media, 'languagechange', () => {
// Update UI
controls.updateSetting.call(this.player, 'captions');
// Save to storage
this.player.storage.set({ language: this.player.language });
});
// Captions toggle
on.call(this.player, this.player.media, 'captionsenabled captionsdisabled', () => {
// Update UI
controls.updateSetting.call(this.player, 'captions');
// Save to storage
this.player.storage.set({ captions: this.player.captions.active });
});
// Proxy events to container // Proxy events to container
// Bubble up key events for Edge // Bubble up key events for Edge
on.call(this.player, this.player.media, this.player.config.events.concat([ on.call(this.player, this.player.media, this.player.config.events.concat([