Skip to content

Commit

Permalink
fix(FEC-10122): destroy cleanup process (#326)
Browse files Browse the repository at this point in the history
static class added listeners to the player instance which weren't cleared on destroy.
Add destroy to playlist manager.
  • Loading branch information
Yuvalke authored Jul 2, 2020
1 parent 8016e9f commit 5fbe11b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 7 deletions.
4 changes: 4 additions & 0 deletions src/common/playlist/playlist-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,10 @@ class PlaylistManager {
}
return Promise.reject();
}

destroy(): void {
this._eventManager.destroy();
}
}

export {PlaylistManager};
21 changes: 14 additions & 7 deletions src/common/storage/storage-manager.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// @flow
import StorageWrapper from './storage-wrapper';
import getLogger from '../utils/logger';
import {Utils} from '@playkit-js/playkit-js';
import {EventManager, Utils} from '@playkit-js/playkit-js';

export default class StorageManager {
static StorageKeys: {[key: string]: string} = {
Expand Down Expand Up @@ -32,17 +32,19 @@ export default class StorageManager {
*/
static attach(player: Player): void {
StorageManager._logger.debug('Attach local storage');
player.addEventListener(player.Event.UI.USER_CLICKED_MUTE, () => {
let eventManager = new EventManager();
eventManager.listen(player, player.Event.UI.USER_CLICKED_MUTE, () => {
if (!player.isCasting()) {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, player.muted);
}
});
player.addEventListener(player.Event.UI.USER_CLICKED_UNMUTE, () => {
eventManager.listen(player, player.Event.UI.USER_CLICKED_UNMUTE, () => {
if (!player.isCasting()) {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, player.muted);
}
});
player.addEventListener(player.Event.UI.USER_CHANGED_VOLUME, () => {

eventManager.listen(player, player.Event.UI.USER_CHANGED_VOLUME, () => {
if (!player.isCasting()) {
if (player.volume > 0) {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, false);
Expand All @@ -52,22 +54,27 @@ export default class StorageManager {
StorageWrapper.setItem(StorageManager.StorageKeys.VOLUME, player.volume);
}
});
player.addEventListener(player.Event.UI.USER_SELECTED_AUDIO_TRACK, event => {

eventManager.listen(player, player.Event.UI.USER_SELECTED_AUDIO_TRACK, event => {
const audioTrack = event.payload.audioTrack;
StorageWrapper.setItem(StorageManager.StorageKeys.AUDIO_LANG, audioTrack.language);
});
player.addEventListener(player.Event.UI.USER_SELECTED_CAPTION_TRACK, event => {

eventManager.listen(player, player.Event.UI.USER_SELECTED_CAPTION_TRACK, event => {
const textTrack = event.payload.captionTrack;
StorageWrapper.setItem(StorageManager.StorageKeys.TEXT_LANG, textTrack.language);
});
player.addEventListener(player.Event.UI.USER_SELECTED_CAPTIONS_STYLE, event => {

eventManager.listen(player, player.Event.UI.USER_SELECTED_CAPTIONS_STYLE, event => {
try {
const textStyle = JSON.stringify(event.payload.captionsStyle);
StorageWrapper.setItem(StorageManager.StorageKeys.TEXT_STYLE, textStyle);
} catch (e) {
this._logger.error(e.message);
}
});

eventManager.listen(player, player.Event.PLAYER_DESTROY, () => eventManager.destroy());
}

/**
Expand Down
1 change: 1 addition & 0 deletions src/kaltura-player.js
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ class KalturaPlayer extends FakeEventTarget {
this._localPlayer.destroy();
this._uiWrapper.destroy();
this._eventManager.destroy();
this._playlistManager.destroy();
const targetContainer = document.getElementById(targetId);
if (targetContainer && targetContainer.parentNode) {
Utils.Dom.removeChild(targetContainer.parentNode, targetContainer);
Expand Down

0 comments on commit 5fbe11b

Please sign in to comment.