Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #7547 from crdlc/bug-829050
Browse files Browse the repository at this point in the history
Bug 829050 - Add a config preference to allow disabling of e.me altogeth...(cherry picked from commit 050df3e)
  • Loading branch information
Cristian Rodriguez authored and jhford committed Feb 12, 2013
1 parent 9aab784 commit 952d09f
Show file tree
Hide file tree
Showing 9 changed files with 156 additions and 76 deletions.
11 changes: 9 additions & 2 deletions apps/homescreen/everything.me/js/everything.me.js
Expand Up @@ -173,6 +173,15 @@ var EverythingME = {
EverythingME.initEvme(success);
});
}
},

destroy: function EverythingME_destroy() {
// Deleting all resources of everything.me from DOM
var list = document.querySelectorAll('head > [href*="everything.me"]');
for (var i = 0; i < list.length; i++) {
var resource = list[i];
resource.parentNode.removeChild(resource);
}
}
};

Expand All @@ -181,5 +190,3 @@ var EvmeFacade = {
return false;
}
};

EverythingME.init();
3 changes: 2 additions & 1 deletion apps/homescreen/index.html
Expand Up @@ -36,6 +36,7 @@
<script type="text/javascript" defer src="js/dragdrop.js"></script>
<script type="text/javascript" defer src="everything.me/js/everything.me.js"></script>
<script type="text/javascript" defer src="js/homescreen.js"></script>
<script type="text/javascript" defer src="js/configurator.js"></script>
<script type="text/javascript" defer src="js/wallpaper.js"></script>
<script type="text/javascript" defer src="js/hiddenapps.js"></script>

Expand Down Expand Up @@ -72,7 +73,7 @@ <h1 id="confirm-dialog-title"></h1>
</header>

<div id="icongrid" class="apps" role="main">
<div class="page" id="evmePage">
<div class="page" id="evmePage" role="search-page">
<article id="loading-overlay">
<section class="loading-container">
<header class="loading-header" data-l10n-id="loadingEvme2">
Expand Down
59 changes: 59 additions & 0 deletions apps/homescreen/js/configurator.js
@@ -0,0 +1,59 @@

'use strict';

const Configurator = (function() {
var conf = {};

var dummyProvider = {
init: function() {
// Do nothing
},

destroy: function() {
// Do nothing
}
}

var xhr = new XMLHttpRequest();
xhr.overrideMimeType('application/json');
xhr.open('GET', 'js/init.json', true);
xhr.send(null);

xhr.onload = function _xhrOnLoad(evt) {
try {
conf = JSON.parse(xhr.responseText);

var searchPage = conf.search_page;
if (searchPage) {
var provider = window[searchPage.provider] || dummyProvider;
if (searchPage.enabled) {
provider.init();
Homescreen.init(1);
} else {
startHomescreenByDefault();
setTimeout(provider.destroy, 0);
}
}
} catch (e) {
console.error('Failed parsing homescreen configuration file: ' + e);
startHomescreenByDefault();
}
}

xhr.onerror = function _xhrOnError(evt) {
console.error('File not found: js/init.json');
startHomescreenByDefault();
}

function startHomescreenByDefault() {
var searchPage = document.querySelector('div[role="search-page"]');
searchPage.parentNode.removeChild(searchPage);
Homescreen.init(0);
}

return {
getSection: function(section) {
return conf[section];
}
}
}());
4 changes: 3 additions & 1 deletion apps/homescreen/js/dock.js
Expand Up @@ -92,7 +92,9 @@ const DockManager = (function() {
return;
}

if (GridManager.pageHelper.getCurrentPageNumber() > 1) {
if (GridManager.pageHelper.getCurrentPageNumber() >
GridManager.landingPage) {

Homescreen.setMode('edit');

if ('isIcon' in evt.target.dataset) {
Expand Down
4 changes: 2 additions & 2 deletions apps/homescreen/js/dragdrop.js
Expand Up @@ -129,8 +129,8 @@ const DragDropManager = (function() {
GridManager.goToNextPage(onNavigationEnd);
transitioning = true;
}
} else if (pageHelper.getCurrentPageNumber() !== 2 &&
dirCtrl.limitPrev(currentX)) {
} else if (pageHelper.getCurrentPageNumber() > GridManager.landingPage + 1
&& dirCtrl.limitPrev(currentX)) {
isDisabledDrop = true;

pageHelper.getPrevious().appendIconVisible(draggableIcon);
Expand Down
29 changes: 19 additions & 10 deletions apps/homescreen/js/grid.js
Expand Up @@ -18,7 +18,7 @@ const GridManager = (function() {
var overlay, overlayStyle;
var overlayTransition = 'opacity ' + kPageTransitionDuration + 'ms ease';

var numberOfSpecialPages = 0;
var numberOfSpecialPages = 0, landingPage, prevLandingPage, nextLandingPage;
var pages = [];
var currentPage = 1;

Expand Down Expand Up @@ -190,7 +190,7 @@ const GridManager = (function() {
return;
}

if (currentPage > 1 && 'isIcon' in evt.target.dataset) {
if (currentPage > landingPage && 'isIcon' in evt.target.dataset) {
evt.stopImmediatePropagation();
removePanHandler();
Homescreen.setMode('edit');
Expand All @@ -205,18 +205,20 @@ const GridManager = (function() {
}

function setOverlayPanning(index, deltaX, forward) {
if (index === 1) {
if (index === landingPage && landingPage > 0) {
overlayStyle.opacity = (Math.abs(deltaX) / windowWidth) *
opacityOnAppGridPageMax;
} else if (index === 0 && !forward || index === 2 && forward) {
opacityOnAppGridPageMax;
} else if (index === prevLandingPage && !forward ||
index === nextLandingPage && forward) {
overlayStyle.opacity = opacityOnAppGridPageMax -
(Math.abs(deltaX) / windowWidth) * opacityOnAppGridPageMax;
(Math.abs(deltaX) / windowWidth) * opacityOnAppGridPageMax;
}
}

function applyEffectOverlay(index) {
overlayStyle.MozTransition = overlayTransition;
overlayStyle.opacity = index === 1 ? 0 : opacityOnAppGridPageMax;
overlayStyle.opacity = index === landingPage ?
prevLandingPage : opacityOnAppGridPageMax;
}

function onTouchEnd(deltaX, evt) {
Expand All @@ -228,8 +230,8 @@ const GridManager = (function() {
if (forward && currentPage < pages.length - 1) {
page = page + 1;
} else if (!forward &&
(page === 1 || page >= 3 ||
(page === 2 && !Homescreen.isInEditMode()))) {
(page === landingPage || page >= nextLandingPage + 1 ||
(page === nextLandingPage && !Homescreen.isInEditMode()))) {
page = page - 1;
}
} else if (!isPanning && evt) {
Expand Down Expand Up @@ -266,7 +268,7 @@ const GridManager = (function() {
var lastGoingPageTimestamp = 0;

function goToPage(index, callback) {
document.location.hash = (index == 1 ? 'root' : '');
document.location.hash = (index === landingPage ? 'root' : '');
if (index < 0 || index >= pages.length)
return;

Expand Down Expand Up @@ -624,6 +626,9 @@ const GridManager = (function() {
// offset between these indexes here and the ones in the DB.
// See also pageHelper.saveAll().
numberOfSpecialPages = container.children.length;
landingPage = numberOfSpecialPages - 1;
prevLandingPage = landingPage - 1;
nextLandingPage = landingPage + 1;
for (var i = 0; i < container.children.length; i++) {
var pageElement = container.children[i];
var page = new Page(pageElement, null);
Expand Down Expand Up @@ -1012,6 +1017,10 @@ const GridManager = (function() {

pageHelper: pageHelper,

get landingPage() {
return landingPage;
},

showRestartDownloadDialog: showRestartDownloadDialog
};
})();
54 changes: 34 additions & 20 deletions apps/homescreen/js/homescreen.js
Expand Up @@ -12,18 +12,41 @@ const Homescreen = (function() {
GridManager.localize();
});

var initialized = false, landingPage;

// Initialize the various components.
PaginationBar.init('.paginationScroller');
GridManager.init('.apps', '.dockWrapper', function gm_init() {
PaginationBar.show();
if (document.location.hash === '#root') {
// Switch to the first page only if the user has not already start to pan
// while home is loading
GridManager.goToPage(1);

function initialize(lPage) {
if (initialized) {
return;
}
DragDropManager.init();
Wallpaper.init();
});

initialized = true;
landingPage = lPage;

window.addEventListener('hashchange', function() {
if (document.location.hash != '#root')
return;

if (Homescreen.isInEditMode()) {
exitFromEditMode();
} else {
GridManager.goToPage(landingPage);
}
});

GridManager.init('.apps', '.dockWrapper', function gm_init() {
PaginationBar.show();
if (document.location.hash === '#root') {
// Switch to the first page only if the user has not already start to pan
// while home is loading
GridManager.goToPage(landingPage);
}
DragDropManager.init();
Wallpaper.init();
});
}

function exitFromEditMode() {
Homescreen.setMode('normal');
Expand All @@ -32,17 +55,6 @@ const Homescreen = (function() {
GridManager.goToPage(GridManager.pageHelper.getCurrentPageNumber());
}

window.addEventListener('hashchange', function() {
if (document.location.hash != '#root')
return;

if (Homescreen.isInEditMode()) {
exitFromEditMode();
} else {
GridManager.goToPage(1);
}
});

document.addEventListener('mozvisibilitychange', function mozVisChange() {
if (document.mozHidden && Homescreen.isInEditMode()) {
exitFromEditMode();
Expand Down Expand Up @@ -122,6 +134,8 @@ const Homescreen = (function() {
return mode === 'edit';
},

init: initialize,

setMode: function(newMode) {
mode = document.body.dataset.mode = newMode;
}
Expand Down
41 changes: 11 additions & 30 deletions apps/homescreen/js/state.js
Expand Up @@ -10,37 +10,19 @@ const HomeState = (function() {
var initQueue = [];

function loadInitialState(iterator, success, error) {
var xhr = new XMLHttpRequest();
xhr.overrideMimeType('application/json');
xhr.open('GET', 'js/init.json', true);
xhr.responseType = 'json';
xhr.send(null);

xhr.onreadystatechange = function renderFromMozApps_init(evt) {
if (xhr.readyState != 4)
return;

if (xhr.status != 0 && xhr.status != 200)
return;
var grid = Configurator.getSection('grid') || [];

var grid;
try {
grid = xhr.response;
} catch (e) {
console.log('Failed parsing homescreen configuration file: ' +
e + '\n');
}
if (!grid)
grid = [];
for (var i = 0; i < grid.length; i++) {
grid[i] = {
index: i,
icons: grid[i]
};
}

for (var i = 0; i < grid.length; i++) {
grid[i] = {index: i, icons: grid[i]};
}
HomeState.saveGrid(grid, function onSaveGrid() {
grid.forEach(iterator);
success();
}, error);
};
HomeState.saveGrid(grid, function onSaveGrid() {
grid.forEach(iterator);
success();
}, error);
}

function openDB(success, error) {
Expand Down Expand Up @@ -169,4 +151,3 @@ const HomeState = (function() {
}
};
})();

27 changes: 17 additions & 10 deletions build/applications-data.js
Expand Up @@ -116,17 +116,24 @@ if (init.exists()) {
customize = getJSON(init);
}

let content = customize.homescreens.map(
function map_homescreens(applist) {
var output = [];
for (var i = 0; i < applist.length; i++) {
if (applist[i] !== null) {
output.push(iconDescriptor.apply(null, applist[i]));
let content = {
search_page: {
provider: 'EverythingME',
enabled: true
},

grid: customize.homescreens.map(
function map_homescreens(applist) {
var output = [];
for (var i = 0; i < applist.length; i++) {
if (applist[i] !== null) {
output.push(iconDescriptor.apply(null, applist[i]));
}
}
return output;
}
return output;
}
);
)
};

init = getFile(GAIA_DIR, GAIA_CORE_APP_SRCDIR, 'homescreen', 'js', 'init.json');
writeContent(init, JSON.stringify(content));
Expand Down Expand Up @@ -161,7 +168,7 @@ content = {
is_free: true,
is_roaming_free: true,
credit: { currency : 'R$' },
balance: {
balance: {
destination: '8000',
text: 'SALDO',
senders: ['1515'],
Expand Down

0 comments on commit 952d09f

Please sign in to comment.