diff --git a/apps/system/js/audio_channel_service.js b/apps/system/js/audio_channel_service.js index e6a414f4d173..ed89576d62f2 100644 --- a/apps/system/js/audio_channel_service.js +++ b/apps/system/js/audio_channel_service.js @@ -122,10 +122,11 @@ if (!isBackground) { this.publish('visibleaudiochannelchanged', channel); } - this.publish('audiochannelchangedasactive', channel); + this.publish('audiochannelchanged', channel); } else { this._resetAudioChannel(audioChannel); this._resumeAudioChannels(); + this.publish('audiochannelchanged', { channel: 'none' }); } }, diff --git a/apps/system/js/sound_manager.js b/apps/system/js/sound_manager.js index 658482e51f0a..e11ca216be9a 100644 --- a/apps/system/js/sound_manager.js +++ b/apps/system/js/sound_manager.js @@ -83,7 +83,7 @@ /** * Store the current active channel; - * change with 'audiochannelchangedasactive' event + * change with 'audiochannelchanged' event * All candidates and definitions can be found at AudioChannels link. * * @see {@link https://wiki.mozilla.org/WebAPI/AudioChannels|AudioChannels} @@ -265,7 +265,7 @@ window.addEventListener('holdhome', this); window.addEventListener('homescreenopening', this); window.addEventListener('homescreenopened', this); - window.addEventListener('audiochannelchangedasactive', this); + window.addEventListener('audiochannelchanged', this); LazyLoader.load(['js/headphone_icon.js', 'js/mute_icon.js', @@ -326,7 +326,7 @@ window.removeEventListener('holdhome', this); window.removeEventListener('homescreenopening', this); window.removeEventListener('homescreenopened', this); - window.removeEventListener('audiochannelchangedasactive', this); + window.removeEventListener('audiochannelchanged', this); Service.unregisterState('isHeadsetConnected', this); Service.unregisterState('currentChannel', this); @@ -353,7 +353,7 @@ case 'unmute': this.setMute(false); break; - case 'audiochannelchangedasactive': + case 'audiochannelchanged': this.setAudioChannel(e.detail.channel); this.ceAccumulator(); break; diff --git a/apps/system/test/unit/audio_channel_service_test.js b/apps/system/test/unit/audio_channel_service_test.js index 18fe85dae25b..d7a12e72e958 100644 --- a/apps/system/test/unit/audio_channel_service_test.js +++ b/apps/system/test/unit/audio_channel_service_test.js @@ -160,6 +160,17 @@ suite('system/AudioChannelService', function() { .withArgs(audioChannel).calledOnce); }); + test('Handle inactive audio channel ', function() { + this.sinon.stub(audioChannel, 'isActive', function() { + return false; + }); + this.sinon.spy(subject, 'publish'); + subject._manageAudioChannels(audioChannel); + var channel = { channel: 'none' }; + assert.ok(subject.publish + .withArgs('audiochannelchanged', channel).calledOnce); + }); + suite('Foreground/background audio channel', function() { setup(function() { this.sinon.stub(audioChannel, 'isActive', function() { @@ -177,7 +188,7 @@ suite('system/AudioChannelService', function() { assert.ok(subject.publish .withArgs('visibleaudiochannelchanged', channel).calledOnce); assert.ok(subject.publish - .withArgs('audiochannelchangedasactive', channel).calledOnce); + .withArgs('audiochannelchanged', channel).calledOnce); }); test('In background', function() { @@ -189,7 +200,7 @@ suite('system/AudioChannelService', function() { assert.ok(subject.publish .withArgs('visibleaudiochannelchanged', channel).notCalled); assert.ok(subject.publish - .withArgs('audiochannelchangedasactive', channel).calledOnce); + .withArgs('audiochannelchanged', channel).calledOnce); }); }); diff --git a/apps/system/test/unit/sound_manager_test.js b/apps/system/test/unit/sound_manager_test.js index 150bd9218ac2..05985aadb507 100644 --- a/apps/system/test/unit/sound_manager_test.js +++ b/apps/system/test/unit/sound_manager_test.js @@ -143,7 +143,7 @@ suite('system/sound manager', function() { }); test('audio channel changed', function() { - window.dispatchEvent(new CustomEvent('audiochannelchangedasactive', { + window.dispatchEvent(new CustomEvent('audiochannelchanged', { detail: { channel: 'alarm' } @@ -444,7 +444,7 @@ suite('system/sound manager', function() { soundManager.currentVolume.content = 15; sendChromeEvent({'type': 'headphones-status-changed', 'state': 'on' }); - window.dispatchEvent(new CustomEvent('audiochannelchangedasactive',{ + window.dispatchEvent(new CustomEvent('audiochannelchanged',{ detail: { channel: 'content' }