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
96
gaia/distros/spark/apps/customizer-launcher/js/lib/helpers.js
Executable file
96
gaia/distros/spark/apps/customizer-launcher/js/lib/helpers.js
Executable file
|
|
@ -0,0 +1,96 @@
|
|||
define(["exports", "components/fxos-achievements-service/dist/achievements-service"], function (exports, _componentsFxosAchievementsServiceDistAchievementsService) {
|
||||
"use strict";
|
||||
|
||||
var AchievementsService = _componentsFxosAchievementsServiceDistAchievementsService["default"];
|
||||
var IconHelper = (function () {
|
||||
var IconHelper = function IconHelper() {};
|
||||
|
||||
IconHelper.setImage = function (imageElement, imagePath) {
|
||||
imageElement.src = imagePath || window.DEFAULT_ICON_URL;
|
||||
imageElement.onerror = function (e) {
|
||||
console.warn("Warning, failed to load icon url", imageElement.src, e);
|
||||
imageElement.src = window.DEFAULT_ICON_URL;
|
||||
};
|
||||
};
|
||||
|
||||
IconHelper.getIconURL = function (app, icons) {
|
||||
if (!icons || !Object.keys(icons).length) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// The preferred size is 30 by the default. If we use HDPI device, we may
|
||||
// use the image larger than 30 * 1.5 = 45 pixels.
|
||||
var preferredIconSize = 30 * (window.devicePixelRatio || 1);
|
||||
var preferredSize = Number.MAX_VALUE;
|
||||
var max = 0;
|
||||
|
||||
for (var size in icons) {
|
||||
size = parseInt(size, 10);
|
||||
if (size > max) {
|
||||
max = size;
|
||||
}
|
||||
|
||||
if (size >= preferredIconSize && size < preferredSize) {
|
||||
preferredSize = size;
|
||||
}
|
||||
}
|
||||
// If there is an icon matching the preferred size, we return the result,
|
||||
// if there isn't, we will return the maximum available size.
|
||||
if (preferredSize === Number.MAX_VALUE) {
|
||||
preferredSize = max;
|
||||
}
|
||||
|
||||
var url = icons[preferredSize];
|
||||
|
||||
if (url) {
|
||||
return !(/^(http|https|data):/.test(url)) ? app.origin + url : url;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
return IconHelper;
|
||||
})();
|
||||
|
||||
exports.IconHelper = IconHelper;
|
||||
var AppsHelper = (function () {
|
||||
var AppsHelper = function AppsHelper() {};
|
||||
|
||||
AppsHelper.getAllApps = function () {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var mgmt = navigator.mozApps.mgmt;
|
||||
if (!mgmt) {
|
||||
reject(new Error("Cannot fetch apps, no permissions"));
|
||||
}
|
||||
|
||||
var req = mgmt.getAll();
|
||||
req.onsuccess = function () {
|
||||
resolve(req.result);
|
||||
};
|
||||
req.onerror = function (e) {
|
||||
reject(e);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
return AppsHelper;
|
||||
})();
|
||||
|
||||
exports.AppsHelper = AppsHelper;
|
||||
var AchievementsHelper = (function () {
|
||||
var AchievementsHelper = function AchievementsHelper() {
|
||||
// Create an achievements service
|
||||
this.achievementsService = new AchievementsService();
|
||||
|
||||
window.addEventListener("achievement-rewarded", this);
|
||||
};
|
||||
|
||||
AchievementsHelper.prototype.handleEvent = function (aEvent) {
|
||||
this.achievementsService.reward(aEvent.detail);
|
||||
};
|
||||
|
||||
return AchievementsHelper;
|
||||
})();
|
||||
|
||||
exports.AchievementsHelper = AchievementsHelper;
|
||||
});
|
||||
Loading…
Reference in a new issue