/* global BaseModule */
'use strict';
(function(exports) {
/**
* HomescreenWindowManager manages the show/hide of HomescreenWindow and
* HomescreenLauncher instances.
*
* @class HomescreenWindowManager
* @requires BaseModule
*/
function HomescreenWindowManager() {}
HomescreenWindowManager.EVENTS = [
'appswitching',
'open-app',
'webapps-launch'
];
HomescreenWindowManager.SUB_MODULES = [
'HomescreenLauncher'
];
HomescreenWindowManager.STATES = [
'getHomescreen'
];
BaseModule.create(HomescreenWindowManager, {
DEBUG: false,
name: 'HomescreenWindowManager',
_handle_appswitching: function() {
this.getHomescreen().fadeOut();
},
'_handle_open-app': function(evt) {
this._handle_launch_homescreen(evt);
},
'_handle_webapps-launch': function(evt) {
this._handle_launch_homescreen(evt);
},
_handle_launch_homescreen: function(evt) {
var detail = evt.detail;
if (this.homescreenLauncher &&
detail.manifestURL === this.homescreenLauncher.manifestURL) {
this.getHomescreen();
evt.stopImmediatePropagation();
}
},
/**
* getHomescreen returns the homescreen app window based on if it is
* triggered by home event.
*
* @memberOf HomescreenWindowManager.prototype
*/
getHomescreen: function getHomescreen(isHomeEvent) {
if (!this.homescreenLauncher) {
return null;
}
var home = this.homescreenLauncher.getHomescreen(true);
if (isHomeEvent) {
home.ensure(true);
}
return home;
}
});
}());