VulpesOS/assets/webapps/uitest.gaiamobile.org/js/API/downloads.js
OverSu b38dea0597 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.
2026-09-30 23:13:03 +02:00

84 lines
2.4 KiB
JavaScript

'use strict';
var Downloads = function Downloads() {
var deleteButton, statusButton;
var download = null;
var init = function init() {
deleteButton = document.getElementById('downloadDelete');
deleteButton.addEventListener('click', onDelete);
statusButton = document.getElementById('downloadStatus');
statusButton.addEventListener('click', onStatus);
listen();
};
var onDelete = function onDelete(evt) {
LazyLoader.load(['/shared/js/download/download_helper.js'],
function helperLoaded() {
var request = DownloadHelper.remove(download);
request.onsuccess = function() {
alert('Download removed succesfully');
download = null;
deleteButton.disabled = true;
statusButton.disabled = true;
};
request.onerror = function(msg) {
alert('Error : ' + msg.message);
};
}
);
};
var onStatus = function onStatus(evt) {
if (download === null) {
alert('No download initiated');
} else {
var msg = 'Current download:\n';
msg += 'Total bytes: ' + download.totalBytes + '\n';
msg += 'Current bytes: ' + download.currentBytes + '\n';
msg += 'Url: ' + download.url + '\n';
msg += 'Path: ' + download.path + '\n';
try {
msg += 'Start time: ' + download.startTime + '\n';
} catch (e) {
msg += 'Start: unknown\n';
}
msg += 'Id: ' + download.id + '\n';
alert('Current download: ' + JSON.stringify(msg));
console.log(msg);
}
};
var listen = function listen() {
navigator.mozDownloadManager.ondownloadstart = downloadStartedListener;
};
var downloadStartedListener = function downloadStartedListener(evt) {
download = evt.download;
download.onstatechange = downloadChangeListener;
statusButton.disabled = false;
statusButton.textContent = 'Status: ' + download.state;
//console.log('State new download: ' + download.state);
};
var downloadChangeListener = function downloadChangeListener(evt) {
statusButton.textContent = 'Status: ' + download.state;
console.log('State change: ' + download.state);
if (download.state === 'succeeded') {
console.log('Download finished');
deleteButton.disabled = false;
}
};
return {
'init': init
};
}();
window.addEventListener('load', Downloads.init.bind(Downloads));