mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 03:18:19 -07:00
81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
(function () {
|
|
|
|
var lastStart = 0;
|
|
|
|
function onDeviceReady() {
|
|
|
|
var fetcher = window.BackgroundFetch;
|
|
|
|
fetcher.configure(onBackgroundFetch, onBackgroundFetchFailed, {
|
|
stopOnTerminate: false // <-- false is default
|
|
});
|
|
}
|
|
|
|
function onSyncFinish() {
|
|
|
|
Logger.log('BackgroundFetch completed');
|
|
|
|
var fetcher = window.BackgroundFetch;
|
|
fetcher.finish(); // <-- N.B. You MUST called #finish so that native-side can signal completion of the background-thread to the os.
|
|
}
|
|
|
|
function onSyncFail() {
|
|
|
|
Logger.log('BackgroundFetch completed - sync failed');
|
|
|
|
var fetcher = window.BackgroundFetch;
|
|
fetcher.finish(); // <-- N.B. You MUST called #finish so that native-side can signal completion of the background-thread to the os.
|
|
}
|
|
|
|
function startSync(reportToFetcher) {
|
|
lastStart = new Date().getTime();
|
|
|
|
require(['localsync'], function () {
|
|
|
|
if (LocalSync.getSyncStatus() == 'Syncing') {
|
|
onSyncFinish();
|
|
return;
|
|
}
|
|
|
|
var promise = LocalSync.sync();
|
|
|
|
if (reportToFetcher) {
|
|
promise.done(onSyncFinish).fail(onSyncFail);
|
|
}
|
|
});
|
|
}
|
|
|
|
function onBackgroundFetch() {
|
|
|
|
Logger.log('BackgroundFetch initiated');
|
|
startSync(true);
|
|
}
|
|
|
|
function onBackgroundFetchFailed() {
|
|
Logger.log('- BackgroundFetch failed');
|
|
}
|
|
|
|
var syncInterval = 1800000;
|
|
|
|
function restartInterval() {
|
|
|
|
setInterval(function () {
|
|
|
|
//startSync();
|
|
|
|
}, syncInterval);
|
|
|
|
if (lastStart > 0 && (new Date().getTime() - lastStart) >= syncInterval) {
|
|
|
|
setTimeout(function () {
|
|
//startSync();
|
|
|
|
}, 5000);
|
|
}
|
|
}
|
|
|
|
Dashboard.ready(restartInterval);
|
|
document.addEventListener("resume", restartInterval, false);
|
|
|
|
onDeviceReady();
|
|
})(); |