Skip to content

Commit

Permalink
fix(FEC-7934): change storage manager to listen to UI events (#111)
Browse files Browse the repository at this point in the history
Change storage manager to work with UI events.
  • Loading branch information
Dan Ziv committed Apr 16, 2018
1 parent 5784a75 commit 619d0e9
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 60 deletions.
47 changes: 24 additions & 23 deletions src/common/storage/storage-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,30 @@ export default class StorageManager {
*/
static attach(player: Player): void {
StorageManager._logger.debug('Attach local storage');
player.addEventListener(player.Event.FIRST_PLAY, () => {
player.addEventListener(player.Event.MUTE_CHANGE, () => {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, player.muted);
});
player.addEventListener(player.Event.VOLUME_CHANGE, () => {
StorageWrapper.setItem(StorageManager.StorageKeys.VOLUME, player.volume);
});
player.addEventListener(player.Event.AUDIO_TRACK_CHANGED, (event) => {
const audioTrack = event.payload.selectedAudioTrack;
StorageWrapper.setItem(StorageManager.StorageKeys.AUDIO_LANG, audioTrack.language);
});
player.addEventListener(player.Event.TEXT_TRACK_CHANGED, (event) => {
const textTrack = event.payload.selectedTextTrack;
StorageWrapper.setItem(StorageManager.StorageKeys.TEXT_LANG, textTrack.language);
});
player.addEventListener(player.Event.TEXT_STYLE_CHANGED, () => {
try {
const textStyle = JSON.stringify(player.textStyle);
StorageWrapper.setItem(StorageManager.StorageKeys.TEXT_STYLE, textStyle);
} catch (e) {
this._logger.error(e.message);
}
});
player.addEventListener(player.Event.UI.USER_CLICKED_MUTE, () => {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, player.muted);
});
player.addEventListener(player.Event.UI.USER_CLICKED_UNMUTE, () => {
StorageWrapper.setItem(StorageManager.StorageKeys.MUTED, player.muted);
});
player.addEventListener(player.Event.UI.USER_CHANGED_VOLUME, () => {
StorageWrapper.setItem(StorageManager.StorageKeys.VOLUME, player.volume);
});
player.addEventListener(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) => {
const textTrack = event.payload.captionTrack;
StorageWrapper.setItem(StorageManager.StorageKeys.TEXT_LANG, textTrack.language);
});
player.addEventListener(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);
}
});
}

Expand Down
37 changes: 0 additions & 37 deletions test/src/common/storage/storage-manager.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,41 +66,4 @@ describe('StorageManager', function () {
}
});
});

it('should attaches listeners only after FIRST_PLAY event', function () {
sandbox.stub(StorageWrapper, '_testForLocalStorage').callsFake(() => {
StorageWrapper._isLocalStorageAvailable = true;
});
let fakePlayer = {
listeners: [],
listenersHandlers: {},
Event: {
MUTE_CHANGE: 'mutechange',
VOLUME_CHANGE: 'volumechange',
AUDIO_TRACK_CHANGED: 'audiotrackchanged',
TEXT_TRACK_CHANGED: 'texttrackchanged',
TEXT_STYLE_CHANGED: 'textstylechanged',
FIRST_PLAY: 'firstplay'
},
addEventListener: function (eventName, callback) {
this.listeners.push(eventName);
this.listenersHandlers[eventName] = callback;
}
};
StorageManager.attach(fakePlayer);
fakePlayer.listeners.should.have.length.of(1);
fakePlayer.listeners.should.deep.equal([
fakePlayer.Event.FIRST_PLAY
]);
fakePlayer.listenersHandlers[fakePlayer.Event.FIRST_PLAY]();
fakePlayer.listeners.should.have.length.of(6);
fakePlayer.listeners.should.deep.equal([
fakePlayer.Event.FIRST_PLAY,
fakePlayer.Event.MUTE_CHANGE,
fakePlayer.Event.VOLUME_CHANGE,
fakePlayer.Event.AUDIO_TRACK_CHANGED,
fakePlayer.Event.TEXT_TRACK_CHANGED,
fakePlayer.Event.TEXT_STYLE_CHANGED
]);
});
});

0 comments on commit 619d0e9

Please sign in to comment.