Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
96 lines
No EOL
2.8 KiB
JavaScript
Executable file
96 lines
No EOL
2.8 KiB
JavaScript
Executable file
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;
|
|
}); |