瀏覽代碼

Comment out everything eccept ios

Sebastián Katzer 8 年之前
父節點
當前提交
ca85d76810
共有 6 個文件被更改,包括 1651 次插入1772 次删除
  1. 9 19
      plugin.xml
  2. 45 46
      src/ios/APPLocalNotification.h
  3. 576 616
      src/ios/APPLocalNotification.m
  4. 444 462
      www/local-notification-core.js
  5. 272 284
      www/local-notification-util.js
  6. 305 345
      www/local-notification.js

+ 9 - 19
plugin.xml

@@ -2,8 +2,8 @@
 
 <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
         xmlns:android="http://schemas.android.com/apk/res/android"
-        id="de.appplant.cordova.plugin.local-notification"
-        version="0.8.5">
+        id="cordova-plugin-local-notifications"
+        version="0.0.0">
 
     <name>LocalNotification</name>
 
@@ -27,12 +27,11 @@
 
     <!-- dependencies -->
     <dependency id="cordova-plugin-device" />
-    <dependency id="cordova-plugin-app-event" />
+    <!-- <dependency id="cordova-plugin-app-event" /> -->
 
     <!-- js -->
     <js-module src="www/local-notification.js" name="LocalNotification">
         <clobbers target="cordova.plugins.notification.local" />
-        <clobbers target="plugin.notification.local" />
     </js-module>
 
     <js-module src="www/local-notification-core.js" name="LocalNotification.Core">
@@ -60,7 +59,7 @@
         <header-file src="src/ios/APPLocalNotification.h" />
         <source-file src="src/ios/APPLocalNotification.m" />
 
-        <header-file src="src/ios/APPLocalNotificationOptions.h" />
+        <!-- <header-file src="src/ios/APPLocalNotificationOptions.h" />
         <source-file src="src/ios/APPLocalNotificationOptions.m" />
 
         <header-file src="src/ios/UNUserNotificationCenter+APPLocalNotification.h" />
@@ -70,21 +69,12 @@
         <source-file src="src/ios/UNMutableNotificationContent+APPLocalNotification.m" />
 
         <header-file src="src/ios/UNNotificationRequest+APPLocalNotification.h" />
-        <source-file src="src/ios/UNNotificationRequest+APPLocalNotification.m" />
-
-        <header-file src="src/ios9/APPLocalNotificationOptions.ios9.h" />
-        <source-file src="src/ios9/APPLocalNotificationOptions.ios9.m" />
-
-        <header-file src="src/ios9/UIApplication+APPLocalNotification.ios9.h" />
-        <source-file src="src/ios9/UIApplication+APPLocalNotification.ios9.m" />
-
-        <header-file src="src/ios9/UILocalNotification+APPLocalNotification.ios9.h" />
-        <source-file src="src/ios9/UILocalNotification+APPLocalNotification.ios9.m" />
+        <source-file src="src/ios/UNNotificationRequest+APPLocalNotification.m" /> -->
 
     </platform>
 
     <!-- android -->
-    <platform name="android">
+    <!-- <platform name="android">
 
         <framework src="com.android.support:support-v4:+" value="gradle" />
 
@@ -205,10 +195,10 @@
             src="src/android/notification/TriggerReceiver.java"
             target-dir="src/de/appplant/cordova/plugin/notification" />
 
-    </platform>
+    </platform> -->
 
     <!-- windows -->
-    <platform name="windows">
+    <!-- <platform name="windows">
 
         <config-file target="config.xml" parent="/*" >
             <preference name="WindowsToastCapable" value="true" />
@@ -226,6 +216,6 @@
             <merges target="" />
         </js-module>
 
-    </platform>
+    </platform> -->
 
 </plugin>

+ 45 - 46
src/ios/APPLocalNotification.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2015 by appPlant UG. All rights reserved.
+ * Copyright (c) 2013 by appPlant GmbH. All rights reserved.
  *
  * @APPPLANT_LICENSE_HEADER_START@
  *
@@ -21,7 +21,6 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import <Foundation/Foundation.h>
 #import <Cordova/CDVPlugin.h>
 
 @import UserNotifications;
@@ -31,50 +30,50 @@
 // Execute all queued events
 - (void) deviceready:(CDVInvokedUrlCommand*)command;
 
-// Inform if the app has the permission to show notifications
-- (void) hasPermission:(CDVInvokedUrlCommand*)command;
-// Register permission to show notifications
-- (void) registerPermission:(CDVInvokedUrlCommand*)command;
+// Check permission to show notifications
+- (void) check:(CDVInvokedUrlCommand*)command;
+// Request permission to show notifications
+- (void) request:(CDVInvokedUrlCommand*)command;
 
-// Schedule set of notifications
-- (void) schedule:(CDVInvokedUrlCommand*)command;
-// Update set of notifications
-- (void) update:(CDVInvokedUrlCommand*)command;
-// Cancel set of notifications
-- (void) cancel:(CDVInvokedUrlCommand*)command;
-// Cancel all notifications
-- (void) cancelAll:(CDVInvokedUrlCommand*)command;
-// Clear set of notifications
-- (void) clear:(CDVInvokedUrlCommand*)command;
-// Clear all notifications
-- (void) clearAll:(CDVInvokedUrlCommand*)command;
-
-// If a notification with an ID is present
-- (void) isPresent:(CDVInvokedUrlCommand*)command;
-// If a notification with an ID is scheduled
-- (void) isScheduled:(CDVInvokedUrlCommand*)command;
-// If a notification with an ID is triggered
-- (void) isTriggered:(CDVInvokedUrlCommand*)command;
-
-// List all ids from all local notifications
-- (void) getAllIds:(CDVInvokedUrlCommand*)command;
-// List all ids from all pending notifications
-- (void) getScheduledIds:(CDVInvokedUrlCommand*)command;
-// List all ids from all triggered notifications
-- (void) getTriggeredIds:(CDVInvokedUrlCommand*)command;
-
-// Propertys for given local notification
-- (void) getSingle:(CDVInvokedUrlCommand*)command;
-// Propertya for given scheduled notification
-- (void) getSingleScheduled:(CDVInvokedUrlCommand*)command;
-// Propertys for given triggered notification
-- (void) getSingleTriggered:(CDVInvokedUrlCommand*)command;
-
-// Property list for given local notifications
-- (void) getAll:(CDVInvokedUrlCommand*)command;
-// Property list for given scheduled notifications
-- (void) getScheduled:(CDVInvokedUrlCommand*)command;
-// Property list for given triggered notifications
-- (void) getTriggered:(CDVInvokedUrlCommand*)command;
+//// Schedule set of notifications
+//- (void) schedule:(CDVInvokedUrlCommand*)command;
+//// Update set of notifications
+//- (void) update:(CDVInvokedUrlCommand*)command;
+//// Cancel set of notifications
+//- (void) cancel:(CDVInvokedUrlCommand*)command;
+//// Cancel all notifications
+//- (void) cancelAll:(CDVInvokedUrlCommand*)command;
+//// Clear set of notifications
+//- (void) clear:(CDVInvokedUrlCommand*)command;
+//// Clear all notifications
+//- (void) clearAll:(CDVInvokedUrlCommand*)command;
+//
+//// If a notification with an ID is present
+//- (void) isPresent:(CDVInvokedUrlCommand*)command;
+//// If a notification with an ID is scheduled
+//- (void) isScheduled:(CDVInvokedUrlCommand*)command;
+//// If a notification with an ID is triggered
+//- (void) isTriggered:(CDVInvokedUrlCommand*)command;
+//
+//// List all ids from all local notifications
+//- (void) getAllIds:(CDVInvokedUrlCommand*)command;
+//// List all ids from all pending notifications
+//- (void) getScheduledIds:(CDVInvokedUrlCommand*)command;
+//// List all ids from all triggered notifications
+//- (void) getTriggeredIds:(CDVInvokedUrlCommand*)command;
+//
+//// Propertys for given local notification
+//- (void) getSingle:(CDVInvokedUrlCommand*)command;
+//// Propertya for given scheduled notification
+//- (void) getSingleScheduled:(CDVInvokedUrlCommand*)command;
+//// Propertys for given triggered notification
+//- (void) getSingleTriggered:(CDVInvokedUrlCommand*)command;
+//
+//// Property list for given local notifications
+//- (void) getAll:(CDVInvokedUrlCommand*)command;
+//// Property list for given scheduled notifications
+//- (void) getScheduled:(CDVInvokedUrlCommand*)command;
+//// Property list for given triggered notifications
+//- (void) getTriggered:(CDVInvokedUrlCommand*)command;
 
 @end

文件差異過大導致無法顯示
+ 576 - 616
src/ios/APPLocalNotification.m


+ 444 - 462
www/local-notification-core.js

@@ -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
  * as defined in and that are subject to the Apache License
  * 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.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
  */
 
 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) {
     var fn = this.createCallbackFn(callback, scope);
@@ -424,25 +33,18 @@ exports.hasPermission = function (callback, scope) {
         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);
 
     if (device.platform != 'iOS') {
@@ -450,58 +52,438 @@ exports.registerPermission = function (callback, scope) {
         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;
+//         }
+//     }
+// };

+ 272 - 284
www/local-notification-util.js

@@ -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
  * as defined in and that are subject to the Apache License
  * Version 2.0 (the 'License'). You may not use this file except in
@@ -17,297 +13,289 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-var exec    = require('cordova/exec'),
-    channel = require('cordova/channel');
-
-
-/***********
- * MEMBERS *
- ***********/
-
-// Default values
-exports._defaults = {
-    text:  '',
-    title: '',
-    sound: 'res://platform_default',
-    badge: 0,
-    id:    0,
-    data:  undefined,
-    every: undefined,
-    at:    undefined
-};
-
-// listener
-exports._listener = {};
-
-// Registered permission flag
-exports._registered = false;
-
-
-/********
- * UTIL *
- ********/
-
-/**
- * Merge platform specific properties into the default ones.
- *
- * @return {Object}
- *      The default properties for the platform
  */
-exports.applyPlatformSpecificOptions = function () {
-    var defaults = this._defaults;
-
-    switch (device.platform) {
-    case 'Android':
-        defaults.icon      = 'res://ic_popup_reminder';
-        defaults.smallIcon = undefined;
-        defaults.ongoing   = false;
-        defaults.autoClear = true;
-        defaults.led       = undefined;
-        defaults.color     = undefined;
-        break;
-    }
-
-    return defaults;
-};
 
-/**
- * Merge custom properties with the default values.
- *
- * @param {Object} options
- *      Set of custom values
- *
- * @retrun {Object}
- *      The merged property list
- */
-exports.mergeWithDefaults = function (options) {
-    var defaults = this.getDefaults();
-
-    options.at   = this.getValueFor(options, 'at', 'firstAt', 'date');
-    options.text = this.getValueFor(options, 'text', 'message');
-    options.data = this.getValueFor(options, 'data', 'json');
-
-    if (defaults.hasOwnProperty('autoClear')) {
-        options.autoClear = this.getValueFor(options, 'autoClear', 'autoCancel');
-    }
-
-    if (options.autoClear !== true && options.ongoing) {
-        options.autoClear = false;
-    }
-
-    if (options.at === undefined || options.at === null) {
-        options.at = new Date();
-    }
-
-    for (var key in defaults) {
-        if (options[key] === null || options[key] === undefined) {
-            if (options.hasOwnProperty(key) && ['data','sound'].indexOf(key) > -1) {
-                options[key] = undefined;
-            } else {
-                options[key] = defaults[key];
-            }
-        }
-    }
-
-    for (key in options) {
-        if (!defaults.hasOwnProperty(key)) {
-            delete options[key];
-            console.warn('Unknown property: ' + key);
-        }
-    }
-
-    return options;
-};
+// var exec    = require('cordova/exec'),
+//     channel = require('cordova/channel');
+
+
+// /***********
+//  * MEMBERS *
+//  ***********/
+
+// // Default values
+// exports._defaults = {
+//     text:  '',
+//     title: '',
+//     sound: 'res://platform_default',
+//     badge: 0,
+//     id:    0,
+//     data:  undefined,
+//     every: undefined,
+//     at:    undefined
+// };
+
+// // listener
+// exports._listener = {};
+
+
+// /********
+//  * UTIL *
+//  ********/
+
+// /**
+//  * Merge platform specific properties into the default ones.
+//  *
+//  * @return {Object}
+//  *      The default properties for the platform
+//  */
+// exports.applyPlatformSpecificOptions = function () {
+//     var defaults = this._defaults;
+
+//     switch (device.platform) {
+//     case 'Android':
+//         defaults.icon      = 'res://ic_popup_reminder';
+//         defaults.smallIcon = undefined;
+//         defaults.ongoing   = false;
+//         defaults.autoClear = true;
+//         defaults.led       = undefined;
+//         defaults.color     = undefined;
+//         break;
+//     }
+
+//     return defaults;
+// };
+
+// /**
+//  * Merge custom properties with the default values.
+//  *
+//  * @param {Object} options
+//  *      Set of custom values
+//  *
+//  * @retrun {Object}
+//  *      The merged property list
+//  */
+// exports.mergeWithDefaults = function (options) {
+//     var defaults = this.getDefaults();
+
+//     options.at   = this.getValueFor(options, 'at', 'firstAt', 'date');
+//     options.text = this.getValueFor(options, 'text', 'message');
+//     options.data = this.getValueFor(options, 'data', 'json');
+
+//     if (defaults.hasOwnProperty('autoClear')) {
+//         options.autoClear = this.getValueFor(options, 'autoClear', 'autoCancel');
+//     }
+
+//     if (options.autoClear !== true && options.ongoing) {
+//         options.autoClear = false;
+//     }
+
+//     if (options.at === undefined || options.at === null) {
+//         options.at = new Date();
+//     }
+
+//     for (var key in defaults) {
+//         if (options[key] === null || options[key] === undefined) {
+//             if (options.hasOwnProperty(key) && ['data','sound'].indexOf(key) > -1) {
+//                 options[key] = undefined;
+//             } else {
+//                 options[key] = defaults[key];
+//             }
+//         }
+//     }
+
+//     for (key in options) {
+//         if (!defaults.hasOwnProperty(key)) {
+//             delete options[key];
+//             console.warn('Unknown property: ' + key);
+//         }
+//     }
+
+//     return options;
+// };
+
+// /**
+//  * Convert the passed values to their required type.
+//  *
+//  * @param {Object} options
+//  *      Set of custom values
+//  *
+//  * @retrun {Object}
+//  *      The converted property list
+//  */
+// exports.convertProperties = function (options) {
+
+//     if (options.id) {
+//         if (isNaN(options.id)) {
+//             options.id = this.getDefaults().id;
+//             console.warn('Id is not a number: ' + options.id);
+//         } else {
+//             options.id = Number(options.id);
+//         }
+//     }
+
+//     if (options.title) {
+//         options.title = options.title.toString();
+//     }
+
+//     if (options.text) {
+//         options.text  = options.text.toString();
+//     }
+
+//     if (options.badge) {
+//         if (isNaN(options.badge)) {
+//             options.badge = this.getDefaults().badge;
+//             console.warn('Badge number is not a number: ' + options.id);
+//         } else {
+//             options.badge = Number(options.badge);
+//         }
+//     }
+
+//     if (options.at) {
+//         if (typeof options.at == 'object') {
+//             options.at = options.at.getTime();
+//         }
+
+//         options.at = Math.round(options.at/1000);
+//     }
+
+//     if (typeof options.data == 'object') {
+//         options.data = JSON.stringify(options.data);
+//     }
+
+//     if (options.every) {
+//         if (device.platform == 'iOS' && typeof options.every != 'string') {
+//             options.every = this.getDefaults().every;
+//             var warning = 'Every option is not a string: ' + options.id;
+//             warning += '. Expects one of: second, minute, hour, day, week, ';
+//             warning += 'month, year on iOS.';
+//             console.warn(warning);
+//         }
+//     }
+
+//     return options;
+// };
 
 /**
- * Convert the passed values to their required type.
+ * Create a callback function to get executed within a specific scope.
  *
- * @param {Object} options
- *      Set of custom values
+ * @param [ Function ] fn    The function to be exec as the callback.
+ * @param [ Object ]   scope The callback function's scope.
  *
- * @retrun {Object}
- *      The converted property list
+ * @return [ Function ]
  */
-exports.convertProperties = function (options) {
-
-    if (options.id) {
-        if (isNaN(options.id)) {
-            options.id = this.getDefaults().id;
-            console.warn('Id is not a number: ' + options.id);
-        } else {
-            options.id = Number(options.id);
-        }
-    }
-
-    if (options.title) {
-        options.title = options.title.toString();
-    }
-
-    if (options.text) {
-        options.text  = options.text.toString();
-    }
-
-    if (options.badge) {
-        if (isNaN(options.badge)) {
-            options.badge = this.getDefaults().badge;
-            console.warn('Badge number is not a number: ' + options.id);
-        } else {
-            options.badge = Number(options.badge);
-        }
-    }
-
-    if (options.at) {
-        if (typeof options.at == 'object') {
-            options.at = options.at.getTime();
-        }
-
-        options.at = Math.round(options.at/1000);
-    }
-
-    if (typeof options.data == 'object') {
-        options.data = JSON.stringify(options.data);
-    }
-
-    if (options.every) {
-        if (device.platform == 'iOS' && typeof options.every != 'string') {
-            options.every = this.getDefaults().every;
-            var warning = 'Every option is not a string: ' + options.id;
-            warning += '. Expects one of: second, minute, hour, day, week, ';
-            warning += 'month, year on iOS.';
-            console.warn(warning);
-        }
-    }
-
-    return options;
-};
+exports.createCallbackFn = function (fn, scope) {
 
-/**
- * Create callback, which will be executed within a specific scope.
- *
- * @param {Function} callbackFn
- *      The callback function
- * @param {Object} scope
- *      The scope for the function
- *
- * @return {Function}
- *      The new callback function
- */
-exports.createCallbackFn = function (callbackFn, scope) {
-
-    if (typeof callbackFn != 'function')
+    if (typeof fn != 'function')
         return;
 
     return function () {
-        callbackFn.apply(scope || this, arguments);
+        fn.apply(scope || this, arguments);
     };
 };
 
-/**
- * Convert the IDs to numbers.
- *
- * @param {String/Number[]} ids
- *
- * @return Array of Numbers
- */
-exports.convertIds = function (ids) {
-    var convertedIds = [];
-
-    for (var i = 0; i < ids.length; i++) {
-        convertedIds.push(Number(ids[i]));
-    }
-
-    return convertedIds;
-};
-
-/**
- * First found value for the given keys.
- *
- * @param {Object} options
- *      Object with key-value properties
- * @param {String[]} keys*
- *      Key list
- */
-exports.getValueFor = function (options) {
-    var keys = Array.apply(null, arguments).slice(1);
-
-    for (var i = 0; i < keys.length; i++) {
-        var key = keys[i];
-
-        if (options.hasOwnProperty(key)) {
-            return options[key];
-        }
-    }
-};
-
-/**
- * Fire event with given arguments.
- *
- * @param {String} event
- *      The event's name
- * @param {args*}
- *      The callback's arguments
- */
-exports.fireEvent = function (event) {
-    var args     = Array.apply(null, arguments).slice(1),
-        listener = this._listener[event];
-
-    if (!listener)
-        return;
-
-    for (var i = 0; i < listener.length; i++) {
-        var fn    = listener[i][0],
-            scope = listener[i][1];
-
-        fn.apply(scope, args);
-    }
-};
-
-/**
- * Execute the native counterpart.
- *
- * @param {String} action
- *      The name of the action
- * @param args[]
- *      Array of arguments
- * @param {Function} callback
- *      The callback function
- * @param {Object} scope
- *      The scope for the function
- */
-exports.exec = function (action, args, callback, scope) {
-    var fn = this.createCallbackFn(callback, scope),
-        params = [];
-
-    if (Array.isArray(args)) {
-        params = args;
-    } else if (args) {
-        params.push(args);
-    }
-
-    exec(fn, null, 'LocalNotification', action, params);
-};
-
-
-/*********
- * HOOKS *
- *********/
-
-// Called after 'deviceready' event
-channel.deviceready.subscribe(function () {
-    // Device is ready now, the listeners are registered
-    // and all queued events can be executed.
-    exec(null, null, 'LocalNotification', 'deviceready', []);
-});
-
-// Called before 'deviceready' event
-channel.onCordovaReady.subscribe(function () {
-    // Device plugin is ready now
-    channel.onCordovaInfoReady.subscribe(function () {
-        // Merge platform specifics into defaults
-        exports.applyPlatformSpecificOptions();
-    });
-});
+// /**
+//  * Convert the IDs to numbers.
+//  *
+//  * @param {String/Number[]} ids
+//  *
+//  * @return Array of Numbers
+//  */
+// exports.convertIds = function (ids) {
+//     var convertedIds = [];
+
+//     for (var i = 0; i < ids.length; i++) {
+//         convertedIds.push(Number(ids[i]));
+//     }
+
+//     return convertedIds;
+// };
+
+// /**
+//  * First found value for the given keys.
+//  *
+//  * @param {Object} options
+//  *      Object with key-value properties
+//  * @param {String[]} keys*
+//  *      Key list
+//  */
+// exports.getValueFor = function (options) {
+//     var keys = Array.apply(null, arguments).slice(1);
+
+//     for (var i = 0; i < keys.length; i++) {
+//         var key = keys[i];
+
+//         if (options.hasOwnProperty(key)) {
+//             return options[key];
+//         }
+//     }
+// };
+
+// /**
+//  * Fire event with given arguments.
+//  *
+//  * @param {String} event
+//  *      The event's name
+//  * @param {args*}
+//  *      The callback's arguments
+//  */
+// exports.fireEvent = function (event) {
+//     var args     = Array.apply(null, arguments).slice(1),
+//         listener = this._listener[event];
+
+//     if (!listener)
+//         return;
+
+//     for (var i = 0; i < listener.length; i++) {
+//         var fn    = listener[i][0],
+//             scope = listener[i][1];
+
+//         fn.apply(scope, args);
+//     }
+// };
+
+// /**
+//  * Execute the native counterpart.
+//  *
+//  * @param {String} action
+//  *      The name of the action
+//  * @param args[]
+//  *      Array of arguments
+//  * @param {Function} callback
+//  *      The callback function
+//  * @param {Object} scope
+//  *      The scope for the function
+//  */
+// exports.exec = function (action, args, callback, scope) {
+//     var fn = this.createCallbackFn(callback, scope),
+//         params = [];
+
+//     if (Array.isArray(args)) {
+//         params = args;
+//     } else if (args) {
+//         params.push(args);
+//     }
+
+//     exec(fn, null, 'LocalNotification', action, params);
+// };
+
+
+// /*********
+//  * HOOKS *
+//  *********/
+
+// // Called after 'deviceready' event
+// channel.deviceready.subscribe(function () {
+//     // Device is ready now, the listeners are registered
+//     // and all queued events can be executed.
+//     exec(null, null, 'LocalNotification', 'deviceready', []);
+// });
+
+// // Called before 'deviceready' event
+// channel.onCordovaReady.subscribe(function () {
+//     // Device plugin is ready now
+//     channel.onCordovaInfoReady.subscribe(function () {
+//         // Merge platform specifics into defaults
+//         exports.applyPlatformSpecificOptions();
+//     });
+// });

+ 305 - 345
www/local-notification.js

@@ -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
  * as defined in and that are subject to the Apache License
  * Version 2.0 (the 'License'). You may not use this file except in
@@ -17,360 +13,324 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- *
- * @APPPLANT_LICENSE_HEADER_END@
- */
-
-
-/*************
- * INTERFACE *
- *************/
-
-/**
- * Returns the default settings.
- *
- * @return {Object}
- */
-exports.getDefaults = function () {
-    return this.core.getDefaults();
-};
-
-/**
- * Overwrite default settings.
- *
- * @param {Object} defaults
- */
-exports.setDefaults = function (defaults) {
-    this.core.setDefaults(defaults);
-};
-
-/**
- * Schedule a new local notification.
- *
- * @param {Object} notifications
- *      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 (notifications, callback, scope, args) {
-    this.core.schedule(notifications, callback, scope, args);
-};
-
-/**
- * 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 (notifications, callback, scope, args) {
-    this.core.update(notifications, callback, scope, args);
-};
-
-/**
- * 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) {
-    this.core.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.core.clearAll(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) {
-    this.core.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.core.cancelAll(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.core.isPresent(id, 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.core.isScheduled(id, 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.core.isTriggered(id, 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.core.getAllIds(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.core.getScheduledIds(callback, scope);
-};
 
 /**
- * List all triggered notification IDs.
+ * Request permission to show notifications.
  *
- * @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.core.getTriggeredIds(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 () {
-    this.core.get.apply(this.core, arguments);
-};
-
-/**
- * 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.core.getAll(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 () {
-    this.core.getScheduled.apply(this.core, arguments);
-};
-
-/**
- * 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.core.getAllScheduled(callback, scope);
-};
-
-/**
- * Property list for given triggered notifications.
- * If called without IDs, all notification will be returned.
+ * @param [ Function ] callback The function to be exec as the callback.
+ * @param [ Object ]   scope    The callback function's scope.
  *
- * @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 () {
-    this.core.getTriggered.apply(this.core, arguments);
-};
-
-/**
- * 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.core.getAllTriggered(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) {
     this.core.hasPermission(callback, scope);
 };
 
 /**
- * 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
- */
-exports.registerPermission = function (callback, scope) {
-    this.core.registerPermission(callback, scope);
-};
-
-
-/****************
- * DEPRECATIONS *
- ****************/
-
-/**
- * Schedule a new local notification.
- */
-exports.add = function () {
-    console.warn('Depreated: Please use `notification.local.schedule` instead.');
-
-    this.schedule.apply(this, arguments);
-};
-
-/**
- * Register permission to show notifications
- * if not already granted.
- */
-exports.promptForPermission = function () {
-    console.warn('Depreated: Please use `notification.local.registerPermission` instead.');
-
-    this.registerPermission.apply(this, arguments);
-};
-
-
-/**********
- * EVENTS *
- **********/
-
-/**
- * Register callback for given event.
+ * @param [ Function ] callback The function to be exec as the callback.
+ * @param [ Object ]   scope    The callback function's scope.
  *
- * @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
+ * @return [ Void ]
  */
-exports.on = function (event, callback, scope) {
-    this.core.on(event, callback, scope);
+exports.requestPermission = function (callback, scope) {
+    this.core.requestPermission(callback, scope);
 };
 
-/**
- * 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) {
-    this.core.un(event, callback);
-};
+// /**
+//  * Returns the default settings.
+//  *
+//  * @return {Object}
+//  */
+// exports.getDefaults = function () {
+//     return this.core.getDefaults();
+// };
+
+// /**
+//  * Overwrite default settings.
+//  *
+//  * @param {Object} defaults
+//  */
+// exports.setDefaults = function (defaults) {
+//     this.core.setDefaults(defaults);
+// };
+
+// /**
+//  * Schedule a new local notification.
+//  *
+//  * @param {Object} notifications
+//  *      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 (notifications, callback, scope, args) {
+//     this.core.schedule(notifications, callback, scope, args);
+// };
+
+// /**
+//  * 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 (notifications, callback, scope, args) {
+//     this.core.update(notifications, callback, scope, args);
+// };
+
+// /**
+//  * 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) {
+//     this.core.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.core.clearAll(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) {
+//     this.core.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.core.cancelAll(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.core.isPresent(id, 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.core.isScheduled(id, 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.core.isTriggered(id, 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.core.getAllIds(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.core.getScheduledIds(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.core.getTriggeredIds(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 () {
+//     this.core.get.apply(this.core, arguments);
+// };
+
+// /**
+//  * 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.core.getAll(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 () {
+//     this.core.getScheduled.apply(this.core, arguments);
+// };
+
+// /**
+//  * 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.core.getAllScheduled(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 () {
+//     this.core.getTriggered.apply(this.core, arguments);
+// };
+
+// /**
+//  * 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.core.getAllTriggered(callback, scope);
+// };
+
+// /**
+//  * 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) {
+//     this.core.on(event, callback, scope);
+// };
+
+// /**
+//  * 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) {
+//     this.core.un(event, callback);
+// };

部分文件因文件數量過多而無法顯示