diff --git a/package-lock.json b/package-lock.json index 17e9d54..1e5fa4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "com.netsyms.packagehelper", - "version": "1.6.0", + "version": "1.6.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -423,6 +423,12 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.3.tgz", "integrity": "sha1-wrQbfv0EVd0Jf4k1bYW/3V2t6w8=" }, + "cordova-plugin-foreground-service": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-foreground-service/-/cordova-plugin-foreground-service-1.1.3.tgz", + "integrity": "sha512-/C2Z8w9JIfAaLeXP290msQP9jcHR+CAJYbp6/x+mS21VtvS2Ug0upKsgjEzzSzRnt08Mr8kuwCV7juUd6eCWcw==", + "dev": true + }, "cordova-plugin-headercolor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cordova-plugin-headercolor/-/cordova-plugin-headercolor-1.0.0.tgz", diff --git a/package.json b/package.json index d0eb614..9a1c185 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,8 @@ "cordova-plugin-device": {}, "cordova-plugin-battery-status": {}, "cordova-plugin-statusbar": {}, - "cordova-plugin-headercolor": {} + "cordova-plugin-headercolor": {}, + "cordova-plugin-foreground-service": {} }, "platforms": [ "browser", @@ -47,5 +48,7 @@ "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-whitelist": "^1.3.4" }, - "devDependencies": {} + "devDependencies": { + "cordova-plugin-foreground-service": "^1.1.3" + } } \ No newline at end of file diff --git a/www/assets/js/platform.js b/www/assets/js/platform.js index 7ab5dca..82b5174 100644 --- a/www/assets/js/platform.js +++ b/www/assets/js/platform.js @@ -169,6 +169,10 @@ function initCordova() { }); } + if (getStorage("runinbackground") == "true") { + cordova.plugins.foregroundService.start('PackageHelper', 'GPS active'); + } + // Make sure the status bar color is set properly applyColorTheme(); }, false); diff --git a/www/assets/js/settings.js b/www/assets/js/settings.js index ea70c93..7377ad0 100644 --- a/www/assets/js/settings.js +++ b/www/assets/js/settings.js @@ -98,6 +98,22 @@ $('.item-content[data-setting=wakelock] .toggle input').on("change", function () } }); +$('.item-content[data-setting=runinbackground] .toggle input').on("change", function () { + var checked = $(this).prop('checked'); + setStorage("runinbackground", checked); + + if (platform_type == "cordova") { + loadSettings(); + } else { + app.toast.show({ + text: "This setting won't do anything on your device.", + position: "bottom", + destroyOnClose: true, + closeTimeout: 1000 * 10 + }); + } +}); + $('.item-content[data-setting=hardwarescanner] .toggle input').on("change", function () { var checked = $(this).prop('checked'); setStorage("hardwarescanner", checked); diff --git a/www/assets/js/sync.js b/www/assets/js/sync.js index 85ef46d..7de6239 100644 --- a/www/assets/js/sync.js +++ b/www/assets/js/sync.js @@ -100,6 +100,12 @@ function loadSettings() { console.log("Warn", 'Failed to release wakelock'); }); } + + if (getStorage("runinbackground") == "true") { + cordova.plugins.foregroundService.start('PackageHelper', 'GPS active'); + } else { + cordova.plugins.foregroundService.stop(); + } } } diff --git a/www/routes.js b/www/routes.js index 81ef30a..8c69527 100644 --- a/www/routes.js +++ b/www/routes.js @@ -531,11 +531,11 @@ var routes = [ }); if (platform_type == "cordova" && cordova.platformId != "browser") { settings.push({ - setting: "wakelock", - title: "Keep screen on", - text: "Improves GPS accuracy and alert sound reliability, but uses more battery.", + setting: "runinbackground", + title: "Run in background", + text: "Get package alerts when the screen is off or a different app is open.", toggle: true, - checked: getStorage("wakelock") == "true", + checked: getStorage("runinbackground") == "true", onclick: "" }); } @@ -798,8 +798,19 @@ var routes = [ selected: getStorage("animation") == "off" } ] - }, - { + } + ]; + if (platform_type == "cordova" && cordova.platformId != "browser") { + settings.push({ + setting: "wakelock", + title: "Keep screen on", + text: "", + toggle: true, + checked: getStorage("wakelock") == "true", + onclick: "" + }); + } + settings.push([{ setting: "showhelp", title: "Show help", text: "Show the help icons", @@ -815,7 +826,7 @@ var routes = [ checked: getStorage("oldhomeui") == "true", onclick: "" } - ]; + ]); resolve({ templateUrl: './pages/settings.html' }, {