Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
100
gaia/apps/settings/js/panels/homescreens/panel.js
Executable file
100
gaia/apps/settings/js/panels/homescreens/panel.js
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
/**
|
||||
* Manage wallpaper and replaceable home screens.
|
||||
*/
|
||||
define(function(require) {
|
||||
'use strict';
|
||||
|
||||
const VERTICALHOME_MANIFEST =
|
||||
'app://verticalhome.gaiamobile.org/manifest.webapp';
|
||||
|
||||
var SettingsListener = require('shared/settings_listener');
|
||||
var SettingsPanel = require('modules/settings_panel');
|
||||
var Wallpaper = require('panels/homescreens/wallpaper');
|
||||
var HomescreenCols = require('panels/homescreens/homescreen_cols');
|
||||
var HomescreenName = require('panels/homescreens/homescreen_name');
|
||||
|
||||
var elements = {};
|
||||
var gridSelect = null;
|
||||
|
||||
return function ctor_homescreen_panel() {
|
||||
var wallpaper = Wallpaper();
|
||||
var homescreenCols = HomescreenCols();
|
||||
var homescreenName = HomescreenName();
|
||||
|
||||
return SettingsPanel({
|
||||
/**
|
||||
* @param {HTMLElement} panel The panel HTML element.
|
||||
*/
|
||||
onInit: function hp_onInit(panel) {
|
||||
elements = {
|
||||
wallpaper: panel.querySelector('.wallpaper'),
|
||||
wallpaperPreview: panel.querySelector('.wallpaper-preview'),
|
||||
currentHomescreen: panel.querySelector('.current-homescreen')
|
||||
};
|
||||
|
||||
elements.wallpaper.addEventListener('click',
|
||||
wallpaper.selectWallpaper.bind(wallpaper));
|
||||
|
||||
SettingsListener.observe('homescreen.manifestURL', '', manifestURL => {
|
||||
homescreenCols.verticalhomeActive =
|
||||
manifestURL === VERTICALHOME_MANIFEST;
|
||||
});
|
||||
|
||||
gridSelect = panel.querySelector('[name="grid.layout.cols"]');
|
||||
gridSelect.addEventListener('change', function() {
|
||||
homescreenCols.setCols(this.value);
|
||||
});
|
||||
},
|
||||
|
||||
onBeforeShow: function hp_onBeforeShow(panel, options) {
|
||||
this._setWallpaperPreviewSrc(wallpaper.wallpaperSrc);
|
||||
this._setHomescreenName(homescreenName.name);
|
||||
this._updateCols(homescreenCols.cols);
|
||||
|
||||
homescreenCols.observe('cols', this._updateCols);
|
||||
|
||||
wallpaper.observe('wallpaperSrc', this._setWallpaperPreviewSrc);
|
||||
homescreenName.observe('name', this._setHomescreenName);
|
||||
},
|
||||
|
||||
onBeforeHide: function hp_onBeforeHide() {
|
||||
wallpaper.unobserve('wallpaperSrc');
|
||||
homescreenName.unobserve('name');
|
||||
homescreenCols.unobserve('cols');
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {String} src
|
||||
* @private
|
||||
*/
|
||||
_setWallpaperPreviewSrc: function hp_setHomescreenName(src) {
|
||||
elements.wallpaperPreview.src = src;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Number} number The number of columns in the layout.
|
||||
* @private
|
||||
*/
|
||||
_updateCols: function hdp_updateCols(number) {
|
||||
if (!number) {
|
||||
return;
|
||||
}
|
||||
|
||||
var option =
|
||||
gridSelect.querySelector('[value="' + number + '"]');
|
||||
|
||||
if (option) {
|
||||
option.selected = true;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {String} name
|
||||
* @private
|
||||
*/
|
||||
_setHomescreenName: function hp_setHomescreenName(name) {
|
||||
elements.currentHomescreen.textContent = name;
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
Loading…
Reference in a new issue