|
@@ -1,8 +1,4 @@
|
|
|
/*
|
|
/*
|
|
|
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
|
|
|
|
|
- *
|
|
|
|
|
- * @APPPLANT_LICENSE_HEADER_START@
|
|
|
|
|
- *
|
|
|
|
|
* This file contains Original Code and/or Modifications of Original Code
|
|
* This file contains Original Code and/or Modifications of Original Code
|
|
|
* as defined in and that are subject to the Apache License
|
|
* as defined in and that are subject to the Apache License
|
|
|
* Version 2.0 (the 'License'). You may not use this file except in
|
|
* Version 2.0 (the 'License'). You may not use this file except in
|
|
@@ -17,404 +13,17 @@
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
|
|
* Please see the License for the specific language governing rights and
|
|
* Please see the License for the specific language governing rights and
|
|
|
* limitations under the License.
|
|
* limitations under the License.
|
|
|
- *
|
|
|
|
|
- * @APPPLANT_LICENSE_HEADER_END@
|
|
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
var exec = require('cordova/exec');
|
|
var exec = require('cordova/exec');
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-/********
|
|
|
|
|
- * CORE *
|
|
|
|
|
- ********/
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Returns the default settings.
|
|
|
|
|
- *
|
|
|
|
|
- * @return {Object}
|
|
|
|
|
- */
|
|
|
|
|
-exports.getDefaults = function () {
|
|
|
|
|
- return this._defaults;
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Overwrite default settings.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Object} defaults
|
|
|
|
|
- */
|
|
|
|
|
-exports.setDefaults = function (newDefaults) {
|
|
|
|
|
- var defaults = this.getDefaults();
|
|
|
|
|
-
|
|
|
|
|
- for (var key in defaults) {
|
|
|
|
|
- if (newDefaults.hasOwnProperty(key)) {
|
|
|
|
|
- defaults[key] = newDefaults[key];
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Schedule a new local notification.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Object} msgs
|
|
|
|
|
- * The notification properties
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after the notification has been canceled
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- * @param {Object?} args
|
|
|
|
|
- * skipPermission:true schedules the notifications immediatly without
|
|
|
|
|
- * registering or checking for permission
|
|
|
|
|
- */
|
|
|
|
|
-exports.schedule = function (msgs, callback, scope, args) {
|
|
|
|
|
- var fn = function(granted) {
|
|
|
|
|
-
|
|
|
|
|
- if (!granted) return;
|
|
|
|
|
-
|
|
|
|
|
- var notifications = Array.isArray(msgs) ? msgs : [msgs];
|
|
|
|
|
-
|
|
|
|
|
- for (var i = 0; i < notifications.length; i++) {
|
|
|
|
|
- var notification = notifications[i];
|
|
|
|
|
-
|
|
|
|
|
- this.mergeWithDefaults(notification);
|
|
|
|
|
- this.convertProperties(notification);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- this.exec('schedule', notifications, callback, scope);
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- if (args && args.skipPermission) {
|
|
|
|
|
- fn.call(this, true);
|
|
|
|
|
- } else {
|
|
|
|
|
- this.registerPermission(fn, this);
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Update existing notifications specified by IDs in options.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Object} notifications
|
|
|
|
|
- * The notification properties to update
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after the notification has been updated
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- * @param {Object?} args
|
|
|
|
|
- * skipPermission:true schedules the notifications immediatly without
|
|
|
|
|
- * registering or checking for permission
|
|
|
|
|
- */
|
|
|
|
|
-exports.update = function (msgs, callback, scope, args) {
|
|
|
|
|
- var fn = function(granted) {
|
|
|
|
|
-
|
|
|
|
|
- if (!granted) return;
|
|
|
|
|
-
|
|
|
|
|
- var notifications = Array.isArray(msgs) ? msgs : [msgs];
|
|
|
|
|
-
|
|
|
|
|
- for (var i = 0; i < notifications.length; i++) {
|
|
|
|
|
- var notification = notifications[i];
|
|
|
|
|
-
|
|
|
|
|
- this.convertProperties(notification);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- this.exec('update', notifications, callback, scope);
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- if (args && args.skipPermission) {
|
|
|
|
|
- fn.call(this, true);
|
|
|
|
|
- } else {
|
|
|
|
|
- this.registerPermission(fn, this);
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Clear the specified notification.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} id
|
|
|
|
|
- * The ID of the notification
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after the notification has been cleared
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.clear = function (ids, callback, scope) {
|
|
|
|
|
- ids = Array.isArray(ids) ? ids : [ids];
|
|
|
|
|
- ids = this.convertIds(ids);
|
|
|
|
|
-
|
|
|
|
|
- this.exec('clear', ids, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Clear all previously sheduled notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after all notifications have been cleared
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.clearAll = function (callback, scope) {
|
|
|
|
|
- this.exec('clearAll', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Cancel the specified notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String[]} ids
|
|
|
|
|
- * The IDs of the notifications
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after the notifications has been canceled
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.cancel = function (ids, callback, scope) {
|
|
|
|
|
- ids = Array.isArray(ids) ? ids : [ids];
|
|
|
|
|
- ids = this.convertIds(ids);
|
|
|
|
|
-
|
|
|
|
|
- this.exec('cancel', ids, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Remove all previously registered notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A function to be called after all notifications have been canceled
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.cancelAll = function (callback, scope) {
|
|
|
|
|
- this.exec('cancelAll', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Check if a notification with an ID is present.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} id
|
|
|
|
|
- * The ID of the notification
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.isPresent = function (id, callback, scope) {
|
|
|
|
|
- this.exec('isPresent', id || 0, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Check if a notification with an ID is scheduled.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} id
|
|
|
|
|
- * The ID of the notification
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.isScheduled = function (id, callback, scope) {
|
|
|
|
|
- this.exec('isScheduled', id || 0, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Check if a notification with an ID was triggered.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} id
|
|
|
|
|
- * The ID of the notification
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.isTriggered = function (id, callback, scope) {
|
|
|
|
|
- this.exec('isTriggered', id || 0, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * List all local notification IDs.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getAllIds = function (callback, scope) {
|
|
|
|
|
- this.exec('getAllIds', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Alias for `getAllIds`.
|
|
|
|
|
- */
|
|
|
|
|
-exports.getIds = function () {
|
|
|
|
|
- this.getAllIds.apply(this, arguments);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * List all scheduled notification IDs.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getScheduledIds = function (callback, scope) {
|
|
|
|
|
- this.exec('getScheduledIds', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * List all triggered notification IDs.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getTriggeredIds = function (callback, scope) {
|
|
|
|
|
- this.exec('getTriggeredIds', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Property list for given local notifications.
|
|
|
|
|
- * If called without IDs, all notification will be returned.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Number[]?} ids
|
|
|
|
|
- * Set of notification IDs
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.get = function () {
|
|
|
|
|
- var args = Array.apply(null, arguments);
|
|
|
|
|
-
|
|
|
|
|
- if (typeof args[0] == 'function') {
|
|
|
|
|
- args.unshift([]);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var ids = args[0],
|
|
|
|
|
- callback = args[1],
|
|
|
|
|
- scope = args[2];
|
|
|
|
|
-
|
|
|
|
|
- if (!Array.isArray(ids)) {
|
|
|
|
|
- this.exec('getSingle', Number(ids), callback, scope);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- ids = this.convertIds(ids);
|
|
|
|
|
-
|
|
|
|
|
- this.exec('getAll', ids, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Property list for all local notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getAll = function (callback, scope) {
|
|
|
|
|
- this.exec('getAll', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Property list for given scheduled notifications.
|
|
|
|
|
- * If called without IDs, all notification will be returned.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Number[]?} ids
|
|
|
|
|
- * Set of notification IDs
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getScheduled = function () {
|
|
|
|
|
- var args = Array.apply(null, arguments);
|
|
|
|
|
-
|
|
|
|
|
- if (typeof args[0] == 'function') {
|
|
|
|
|
- args.unshift([]);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var ids = args[0],
|
|
|
|
|
- callback = args[1],
|
|
|
|
|
- scope = args[2];
|
|
|
|
|
-
|
|
|
|
|
- if (!Array.isArray(ids)) {
|
|
|
|
|
- ids = [ids];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (!Array.isArray(ids)) {
|
|
|
|
|
- this.exec('getSingleScheduled', Number(ids), callback, scope);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- ids = this.convertIds(ids);
|
|
|
|
|
-
|
|
|
|
|
- this.exec('getScheduled', ids, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Property list for all scheduled notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getAllScheduled = function (callback, scope) {
|
|
|
|
|
- this.exec('getScheduled', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
- * Property list for given triggered notifications.
|
|
|
|
|
- * If called without IDs, all notification will be returned.
|
|
|
|
|
|
|
+ * Request permission to show notifications.
|
|
|
*
|
|
*
|
|
|
- * @param {Number[]?} ids
|
|
|
|
|
- * Set of notification IDs
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getTriggered = function () {
|
|
|
|
|
- var args = Array.apply(null, arguments);
|
|
|
|
|
-
|
|
|
|
|
- if (typeof args[0] == 'function') {
|
|
|
|
|
- args.unshift([]);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var ids = args[0],
|
|
|
|
|
- callback = args[1],
|
|
|
|
|
- scope = args[2];
|
|
|
|
|
-
|
|
|
|
|
- if (!Array.isArray(ids)) {
|
|
|
|
|
- ids = [ids];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (!Array.isArray(ids)) {
|
|
|
|
|
- this.exec('getSingleTriggered', Number(ids), callback, scope);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- ids = this.convertIds(ids);
|
|
|
|
|
-
|
|
|
|
|
- this.exec('getTriggered', ids, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Property list for all triggered notifications.
|
|
|
|
|
|
|
+ * @param [ Function ] callback The function to be exec as the callback.
|
|
|
|
|
+ * @param [ Object ] scope The callback function's scope.
|
|
|
*
|
|
*
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * A callback function to be called with the list
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The scope for the callback function
|
|
|
|
|
- */
|
|
|
|
|
-exports.getAllTriggered = function (callback, scope) {
|
|
|
|
|
- this.exec('getTriggered', null, callback, scope);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Informs if the app has the permission to show notifications.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * The function to be exec as the callback
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The callback function's scope
|
|
|
|
|
|
|
+ * @return [ Void ]
|
|
|
*/
|
|
*/
|
|
|
exports.hasPermission = function (callback, scope) {
|
|
exports.hasPermission = function (callback, scope) {
|
|
|
var fn = this.createCallbackFn(callback, scope);
|
|
var fn = this.createCallbackFn(callback, scope);
|
|
@@ -424,25 +33,18 @@ exports.hasPermission = function (callback, scope) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- exec(fn, null, 'LocalNotification', 'hasPermission', []);
|
|
|
|
|
|
|
+ exec(fn, null, 'LocalNotification', 'check', []);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * Register permission to show notifications if not already granted.
|
|
|
|
|
|
|
+ * Request permission to show notifications.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param [ Function ] callback The function to be exec as the callback.
|
|
|
|
|
+ * @param [ Object ] scope The callback function's scope.
|
|
|
*
|
|
*
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * The function to be exec as the callback
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The callback function's scope
|
|
|
|
|
|
|
+ * @return [ Void ]
|
|
|
*/
|
|
*/
|
|
|
-exports.registerPermission = function (callback, scope) {
|
|
|
|
|
-
|
|
|
|
|
- if (this._registered) {
|
|
|
|
|
- return this.hasPermission(callback, scope);
|
|
|
|
|
- } else {
|
|
|
|
|
- this._registered = true;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+exports.requestPermission = function (callback, scope) {
|
|
|
var fn = this.createCallbackFn(callback, scope);
|
|
var fn = this.createCallbackFn(callback, scope);
|
|
|
|
|
|
|
|
if (device.platform != 'iOS') {
|
|
if (device.platform != 'iOS') {
|
|
@@ -450,58 +52,438 @@ exports.registerPermission = function (callback, scope) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- exec(fn, null, 'LocalNotification', 'registerPermission', []);
|
|
|
|
|
|
|
+ exec(fn, null, 'LocalNotification', 'request', []);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-/**********
|
|
|
|
|
- * EVENTS *
|
|
|
|
|
- **********/
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Register callback for given event.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} event
|
|
|
|
|
- * The event's name
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * The function to be exec as callback
|
|
|
|
|
- * @param {Object?} scope
|
|
|
|
|
- * The callback function's scope
|
|
|
|
|
- */
|
|
|
|
|
-exports.on = function (event, callback, scope) {
|
|
|
|
|
-
|
|
|
|
|
- if (typeof callback !== "function")
|
|
|
|
|
- return;
|
|
|
|
|
-
|
|
|
|
|
- if (!this._listener[event]) {
|
|
|
|
|
- this._listener[event] = [];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var item = [callback, scope || window];
|
|
|
|
|
-
|
|
|
|
|
- this._listener[event].push(item);
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Unregister callback for given event.
|
|
|
|
|
- *
|
|
|
|
|
- * @param {String} event
|
|
|
|
|
- * The event's name
|
|
|
|
|
- * @param {Function} callback
|
|
|
|
|
- * The function to be exec as callback
|
|
|
|
|
- */
|
|
|
|
|
-exports.un = function (event, callback) {
|
|
|
|
|
- var listener = this._listener[event];
|
|
|
|
|
-
|
|
|
|
|
- if (!listener)
|
|
|
|
|
- return;
|
|
|
|
|
-
|
|
|
|
|
- for (var i = 0; i < listener.length; i++) {
|
|
|
|
|
- var fn = listener[i][0];
|
|
|
|
|
-
|
|
|
|
|
- if (fn == callback) {
|
|
|
|
|
- listener.splice(i, 1);
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Returns the default settings.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @return {Object}
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getDefaults = function () {
|
|
|
|
|
+// return this._defaults;
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Overwrite default settings.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Object} defaults
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.setDefaults = function (newDefaults) {
|
|
|
|
|
+// var defaults = this.getDefaults();
|
|
|
|
|
+
|
|
|
|
|
+// for (var key in defaults) {
|
|
|
|
|
+// if (newDefaults.hasOwnProperty(key)) {
|
|
|
|
|
+// defaults[key] = newDefaults[key];
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Schedule a new local notification.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Object} msgs
|
|
|
|
|
+// * The notification properties
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after the notification has been canceled
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// * @param {Object?} args
|
|
|
|
|
+// * skipPermission:true schedules the notifications immediatly without
|
|
|
|
|
+// * registering or checking for permission
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.schedule = function (msgs, callback, scope, args) {
|
|
|
|
|
+// var fn = function(granted) {
|
|
|
|
|
+
|
|
|
|
|
+// if (!granted) return;
|
|
|
|
|
+
|
|
|
|
|
+// var notifications = Array.isArray(msgs) ? msgs : [msgs];
|
|
|
|
|
+
|
|
|
|
|
+// for (var i = 0; i < notifications.length; i++) {
|
|
|
|
|
+// var notification = notifications[i];
|
|
|
|
|
+
|
|
|
|
|
+// this.mergeWithDefaults(notification);
|
|
|
|
|
+// this.convertProperties(notification);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('schedule', notifications, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// if (args && args.skipPermission) {
|
|
|
|
|
+// fn.call(this, true);
|
|
|
|
|
+// } else {
|
|
|
|
|
+// this.registerPermission(fn, this);
|
|
|
|
|
+// }
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Update existing notifications specified by IDs in options.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Object} notifications
|
|
|
|
|
+// * The notification properties to update
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after the notification has been updated
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// * @param {Object?} args
|
|
|
|
|
+// * skipPermission:true schedules the notifications immediatly without
|
|
|
|
|
+// * registering or checking for permission
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.update = function (msgs, callback, scope, args) {
|
|
|
|
|
+// var fn = function(granted) {
|
|
|
|
|
+
|
|
|
|
|
+// if (!granted) return;
|
|
|
|
|
+
|
|
|
|
|
+// var notifications = Array.isArray(msgs) ? msgs : [msgs];
|
|
|
|
|
+
|
|
|
|
|
+// for (var i = 0; i < notifications.length; i++) {
|
|
|
|
|
+// var notification = notifications[i];
|
|
|
|
|
+
|
|
|
|
|
+// this.convertProperties(notification);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('update', notifications, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// if (args && args.skipPermission) {
|
|
|
|
|
+// fn.call(this, true);
|
|
|
|
|
+// } else {
|
|
|
|
|
+// this.registerPermission(fn, this);
|
|
|
|
|
+// }
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Clear the specified notification.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} id
|
|
|
|
|
+// * The ID of the notification
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after the notification has been cleared
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.clear = function (ids, callback, scope) {
|
|
|
|
|
+// ids = Array.isArray(ids) ? ids : [ids];
|
|
|
|
|
+// ids = this.convertIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('clear', ids, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Clear all previously sheduled notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after all notifications have been cleared
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.clearAll = function (callback, scope) {
|
|
|
|
|
+// this.exec('clearAll', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Cancel the specified notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String[]} ids
|
|
|
|
|
+// * The IDs of the notifications
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after the notifications has been canceled
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.cancel = function (ids, callback, scope) {
|
|
|
|
|
+// ids = Array.isArray(ids) ? ids : [ids];
|
|
|
|
|
+// ids = this.convertIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('cancel', ids, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Remove all previously registered notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A function to be called after all notifications have been canceled
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.cancelAll = function (callback, scope) {
|
|
|
|
|
+// this.exec('cancelAll', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Check if a notification with an ID is present.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} id
|
|
|
|
|
+// * The ID of the notification
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.isPresent = function (id, callback, scope) {
|
|
|
|
|
+// this.exec('isPresent', id || 0, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Check if a notification with an ID is scheduled.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} id
|
|
|
|
|
+// * The ID of the notification
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.isScheduled = function (id, callback, scope) {
|
|
|
|
|
+// this.exec('isScheduled', id || 0, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Check if a notification with an ID was triggered.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} id
|
|
|
|
|
+// * The ID of the notification
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.isTriggered = function (id, callback, scope) {
|
|
|
|
|
+// this.exec('isTriggered', id || 0, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// *
|
|
|
|
|
+// * List all local notification IDs.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+
|
|
|
|
|
+// exports.getAllIds = function (callback, scope) {
|
|
|
|
|
+// this.exec('getAllIds', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Alias for `getAllIds`.
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getIds = function () {
|
|
|
|
|
+// this.getAllIds.apply(this, arguments);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * List all scheduled notification IDs.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getScheduledIds = function (callback, scope) {
|
|
|
|
|
+// this.exec('getScheduledIds', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * List all triggered notification IDs.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getTriggeredIds = function (callback, scope) {
|
|
|
|
|
+// this.exec('getTriggeredIds', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for given local notifications.
|
|
|
|
|
+// * If called without IDs, all notification will be returned.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Number[]?} ids
|
|
|
|
|
+// * Set of notification IDs
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.get = function () {
|
|
|
|
|
+// var args = Array.apply(null, arguments);
|
|
|
|
|
+
|
|
|
|
|
+// if (typeof args[0] == 'function') {
|
|
|
|
|
+// args.unshift([]);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// var ids = args[0],
|
|
|
|
|
+// callback = args[1],
|
|
|
|
|
+// scope = args[2];
|
|
|
|
|
+
|
|
|
|
|
+// if (!Array.isArray(ids)) {
|
|
|
|
|
+// this.exec('getSingle', Number(ids), callback, scope);
|
|
|
|
|
+// return;
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// ids = this.convertIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('getAll', ids, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for all local notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getAll = function (callback, scope) {
|
|
|
|
|
+// this.exec('getAll', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for given scheduled notifications.
|
|
|
|
|
+// * If called without IDs, all notification will be returned.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Number[]?} ids
|
|
|
|
|
+// * Set of notification IDs
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getScheduled = function () {
|
|
|
|
|
+// var args = Array.apply(null, arguments);
|
|
|
|
|
+
|
|
|
|
|
+// if (typeof args[0] == 'function') {
|
|
|
|
|
+// args.unshift([]);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// var ids = args[0],
|
|
|
|
|
+// callback = args[1],
|
|
|
|
|
+// scope = args[2];
|
|
|
|
|
+
|
|
|
|
|
+// if (!Array.isArray(ids)) {
|
|
|
|
|
+// ids = [ids];
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// if (!Array.isArray(ids)) {
|
|
|
|
|
+// this.exec('getSingleScheduled', Number(ids), callback, scope);
|
|
|
|
|
+// return;
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// ids = this.convertIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('getScheduled', ids, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for all scheduled notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getAllScheduled = function (callback, scope) {
|
|
|
|
|
+// this.exec('getScheduled', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for given triggered notifications.
|
|
|
|
|
+// * If called without IDs, all notification will be returned.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Number[]?} ids
|
|
|
|
|
+// * Set of notification IDs
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getTriggered = function () {
|
|
|
|
|
+// var args = Array.apply(null, arguments);
|
|
|
|
|
+
|
|
|
|
|
+// if (typeof args[0] == 'function') {
|
|
|
|
|
+// args.unshift([]);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// var ids = args[0],
|
|
|
|
|
+// callback = args[1],
|
|
|
|
|
+// scope = args[2];
|
|
|
|
|
+
|
|
|
|
|
+// if (!Array.isArray(ids)) {
|
|
|
|
|
+// ids = [ids];
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// if (!Array.isArray(ids)) {
|
|
|
|
|
+// this.exec('getSingleTriggered', Number(ids), callback, scope);
|
|
|
|
|
+// return;
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// ids = this.convertIds(ids);
|
|
|
|
|
+
|
|
|
|
|
+// this.exec('getTriggered', ids, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Property list for all triggered notifications.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * A callback function to be called with the list
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The scope for the callback function
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.getAllTriggered = function (callback, scope) {
|
|
|
|
|
+// this.exec('getTriggered', null, callback, scope);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// /**********
|
|
|
|
|
+// * EVENTS *
|
|
|
|
|
+// **********/
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Register callback for given event.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} event
|
|
|
|
|
+// * The event's name
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * The function to be exec as callback
|
|
|
|
|
+// * @param {Object?} scope
|
|
|
|
|
+// * The callback function's scope
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.on = function (event, callback, scope) {
|
|
|
|
|
+
|
|
|
|
|
+// if (typeof callback !== "function")
|
|
|
|
|
+// return;
|
|
|
|
|
+
|
|
|
|
|
+// if (!this._listener[event]) {
|
|
|
|
|
+// this._listener[event] = [];
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// var item = [callback, scope || window];
|
|
|
|
|
+
|
|
|
|
|
+// this._listener[event].push(item);
|
|
|
|
|
+// };
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * Unregister callback for given event.
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param {String} event
|
|
|
|
|
+// * The event's name
|
|
|
|
|
+// * @param {Function} callback
|
|
|
|
|
+// * The function to be exec as callback
|
|
|
|
|
+// */
|
|
|
|
|
+// exports.un = function (event, callback) {
|
|
|
|
|
+// var listener = this._listener[event];
|
|
|
|
|
+
|
|
|
|
|
+// if (!listener)
|
|
|
|
|
+// return;
|
|
|
|
|
+
|
|
|
|
|
+// for (var i = 0; i < listener.length; i++) {
|
|
|
|
|
+// var fn = listener[i][0];
|
|
|
|
|
+
|
|
|
|
|
+// if (fn == callback) {
|
|
|
|
|
+// listener.splice(i, 1);
|
|
|
|
|
+// break;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// };
|