2014-02-13 13:17:56 +00:00
|
|
|
/*
|
|
|
|
Copyright 2013-2014 appPlant UG
|
|
|
|
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
|
|
or more contributor license agreements. See the NOTICE file
|
|
|
|
distributed with this work for additional information
|
|
|
|
regarding copyright ownership. The ASF licenses this file
|
|
|
|
to you under the Apache License, Version 2.0 (the
|
|
|
|
"License"); you may not use this file except in compliance
|
|
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
|
|
software distributed under the License is distributed on an
|
|
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
|
KIND, either express or implied. See the License for the
|
|
|
|
specific language governing permissions and limitations
|
|
|
|
under the License.
|
|
|
|
*/
|
2013-10-09 08:50:15 +00:00
|
|
|
|
2014-11-17 13:19:29 +00:00
|
|
|
var exec = require('cordova/exec'),
|
2014-11-04 14:48:14 +00:00
|
|
|
channel = require('cordova/channel');
|
|
|
|
|
|
|
|
|
|
|
|
// Override back button action to prevent being killed
|
|
|
|
document.addEventListener('backbutton', function () {}, false);
|
|
|
|
|
2014-11-04 14:57:23 +00:00
|
|
|
channel.deviceready.subscribe(function () {
|
|
|
|
// Set the default settings
|
2014-11-04 14:48:14 +00:00
|
|
|
exports.configure();
|
2014-11-17 13:19:29 +00:00
|
|
|
|
|
|
|
// Only enable WP8 by default
|
|
|
|
if (['WinCE', 'Win32NT'].indexOf(device.platform)) {
|
|
|
|
exports.enable();
|
|
|
|
}
|
2014-11-04 14:48:14 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* List of all available options with their default value.
|
|
|
|
*
|
|
|
|
* @return {Object}
|
|
|
|
*/
|
|
|
|
exports.getDefaults = function () {
|
|
|
|
return {
|
|
|
|
title: 'App is running in background',
|
|
|
|
text: 'Doing heavy tasks.',
|
|
|
|
ticker: 'App is running in background',
|
2014-11-12 21:47:49 +00:00
|
|
|
resume: true
|
2014-11-04 14:48:14 +00:00
|
|
|
};
|
2013-10-09 08:50:15 +00:00
|
|
|
};
|
|
|
|
|
2014-11-04 14:48:14 +00:00
|
|
|
/**
|
|
|
|
* Activates the background mode. When activated the application
|
|
|
|
* will be prevented from going to sleep while in background
|
|
|
|
* for the next time.
|
|
|
|
*/
|
|
|
|
exports.enable = function () {
|
|
|
|
cordova.exec(null, null, 'BackgroundMode', 'enable', []);
|
2013-10-09 08:50:15 +00:00
|
|
|
};
|
|
|
|
|
2014-11-04 14:48:14 +00:00
|
|
|
/**
|
|
|
|
* Deactivates the background mode. When deactivated the application
|
|
|
|
* will not stay awake while in background.
|
|
|
|
*/
|
|
|
|
exports.disable = function () {
|
|
|
|
cordova.exec(null, null, 'BackgroundMode', 'disable', []);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Configures the notification settings for Android.
|
|
|
|
* Will be merged with the defaults.
|
|
|
|
*
|
|
|
|
* @param {Object} options
|
|
|
|
* Dict with key/value pairs
|
|
|
|
*/
|
|
|
|
exports.configure = function (options) {
|
|
|
|
var settings = this.mergeWithDefaults(options || {});
|
|
|
|
|
2014-11-11 20:35:26 +00:00
|
|
|
if (device.platform == 'Android') {
|
|
|
|
cordova.exec(null, null, 'BackgroundMode', 'configure', [settings]);
|
|
|
|
}
|
2014-11-04 14:48:14 +00:00
|
|
|
};
|
2013-10-09 08:50:15 +00:00
|
|
|
|
2014-11-04 14:48:14 +00:00
|
|
|
/**
|
|
|
|
* @private
|
|
|
|
*
|
|
|
|
* Merge settings with default values.
|
|
|
|
*
|
|
|
|
* @param {Object} options
|
|
|
|
* The custom options
|
|
|
|
*
|
|
|
|
* @return {Object}
|
|
|
|
* Default values merged
|
|
|
|
* with custom values
|
|
|
|
*/
|
|
|
|
exports.mergeWithDefaults = function (options) {
|
|
|
|
var defaults = this.getDefaults();
|
2014-10-26 15:47:18 +00:00
|
|
|
|
2014-11-04 14:48:14 +00:00
|
|
|
for (var key in defaults) {
|
|
|
|
if (!options.hasOwnProperty(key)) {
|
|
|
|
options[key] = defaults[key];
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return options;
|
|
|
|
};
|