Explorar o código

Renamed internal classes

Sebastián Katzer %!s(int64=8) %!d(string=hai) anos
pai
achega
ebee037361

+ 5 - 5
plugin.xml

@@ -59,15 +59,15 @@
         <header-file src="src/ios/APPLocalNotification.h" />
         <source-file src="src/ios/APPLocalNotification.m" />
 
-        <header-file src="src/ios/APPLocalNotificationOptions.h" />
-        <source-file src="src/ios/APPLocalNotificationOptions.m" />
+        <header-file src="src/ios/APPNotificationContent.h" />
+        <source-file src="src/ios/APPNotificationContent.m" />
+
+        <header-file src="src/ios/APPNotificationOptions.h" />
+        <source-file src="src/ios/APPNotificationOptions.m" />
 
         <header-file src="src/ios/UNUserNotificationCenter+APPLocalNotification.h" />
         <source-file src="src/ios/UNUserNotificationCenter+APPLocalNotification.m" />
 
-        <header-file src="src/ios/UNMutableNotificationContent+APPLocalNotification.h" />
-        <source-file src="src/ios/UNMutableNotificationContent+APPLocalNotification.m" />
-
         <header-file src="src/ios/UNNotificationRequest+APPLocalNotification.h" />
         <source-file src="src/ios/UNNotificationRequest+APPLocalNotification.m" />
 

+ 20 - 11
src/ios/APPLocalNotification.m

@@ -22,10 +22,10 @@
  */
 
 #import "APPLocalNotification.h"
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationOptions.h"
 #import "UNUserNotificationCenter+APPLocalNotification.h"
 #import "UNNotificationRequest+APPLocalNotification.h"
-#import "UNMutableNotificationContent+APPLocalNotification.h"
+#import "APPNotificationContent.h"
 
 @interface APPLocalNotification ()
 
@@ -72,9 +72,9 @@
 
     [self.commandDelegate runInBackground:^{
         for (NSDictionary* options in notifications) {
-            UNMutableNotificationContent* notification;
+            APPNotificationContent* notification;
 
-            notification = [[UNMutableNotificationContent alloc]
+            notification = [[APPNotificationContent alloc]
                             initWithOptions:options];
 
             [self scheduleNotification:notification];
@@ -547,9 +547,9 @@
 /**
  * Schedule the local notification.
  */
-- (void) scheduleNotification:(UNMutableNotificationContent*)notification
+- (void) scheduleNotification:(APPNotificationContent*)notification
 {
-    __weak APPLocalNotification* weakSelf = self;
+    __weak APPLocalNotification* weakSelf  = self;
     UNNotificationRequest* request = notification.request;
 
     [_center addNotificationRequest:request withCompletionHandler:^(NSError* e) {
@@ -563,7 +563,7 @@
 // */
 //- (void) updateNotification:(UILocalNotification*)notification
 //                withOptions:(NSDictionary*)newOptions
-//{
+//{APPNotificationRequest*
 //    NSMutableDictionary* options = [notification.userInfo mutableCopy];
 //
 //    [options addEntriesFromDictionary:newOptions];
@@ -686,6 +686,10 @@
 
 /**
  * Fire general event.
+ *
+ * @param [ NSString* ] event The name of the event to fire.
+ *
+ * @return [ Void ]
  */
 - (void) fireEvent:(NSString*)event
 {
@@ -693,17 +697,22 @@
 }
 
 /**
- * Fire event for local notification.
+ * Fire event for about a local notification.
+ *
+ * @param [ NSString* ] event The name of the event to fire.
+ * @param [ APPNotificationRequest* ] notification The local notification.
+ *
+ * @return [ Void ]
  */
 - (void) fireEvent:(NSString*)event
-      notification:(UNNotificationRequest*)notification
+      notification:(UNNotificationRequest*)request
 {
     NSString* js;
     NSString* appState = [self applicationState];
     NSString* params   = [NSString stringWithFormat:@"\"%@\"", appState];
 
-    if (notification) {
-        NSString* args = [notification encodeToJSON];
+    if (request) {
+        NSString* args = [request encodeToJSON];
         params = [NSString stringWithFormat:@"%@,'%@'", args, appState];
     }
 

+ 3 - 4
src/ios/UNMutableNotificationContent+APPLocalNotification.h → src/ios/APPNotificationContent.h

@@ -21,15 +21,14 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationOptions.h"
 
 @import UserNotifications;
 
-@interface UNMutableNotificationContent (APPLocalNotification)
+@interface APPNotificationContent : UNMutableNotificationContent
 
 - (id) initWithOptions:(NSDictionary*)dict;
-- (APPLocalNotificationOptions*) options;
+- (APPNotificationOptions*) options;
 - (UNNotificationRequest*) request;
-- (NSString*) encodeToJSON;
 
 @end

+ 13 - 40
src/ios/UNMutableNotificationContent+APPLocalNotification.m → src/ios/APPNotificationContent.m

@@ -21,15 +21,15 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "UNMutableNotificationContent+APPLocalNotification.h"
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationContent.h"
+#import "APPNotificationOptions.h"
 #import <objc/runtime.h>
 
 @import UserNotifications;
 
 static char optionsKey;
 
-@implementation UNMutableNotificationContent (APPLocalNotification)
+@implementation APPNotificationContent : UNMutableNotificationContent
 
 #pragma mark -
 #pragma mark Init
@@ -58,7 +58,7 @@ static char optionsKey;
  */
 - (void) __init
 {
-    APPLocalNotificationOptions* options = self.options;
+    APPNotificationOptions* options = self.options;
 
     self.title    = options.title;
     self.subtitle = options.subtitle;
@@ -73,14 +73,14 @@ static char optionsKey;
 /**
  * The options used to initialize the notification.
  *
- * @return [ APPLocalNotificationOptions* ] options
+ * @return [ APPNotificationOptions* ] options
  */
-- (APPLocalNotificationOptions*) options
+- (APPNotificationOptions*) options
 {
-    APPLocalNotificationOptions* options = [self getOptions];
+    APPNotificationOptions* options = [self getOptions];
 
     if (!options) {
-        options = [[APPLocalNotificationOptions alloc]
+        options = [[APPNotificationOptions alloc]
                    initWithDict:[self userInfo]];
 
         [self setOptions:options];
@@ -97,49 +97,22 @@ static char optionsKey;
  */
 - (UNNotificationRequest*) request
 {
-    APPLocalNotificationOptions* opts = [self getOptions];
-    
+    APPNotificationOptions* opts = [self getOptions];
+
     return [UNNotificationRequest requestWithIdentifier:opts.identifier
                                                 content:self
                                                 trigger:opts.trigger];
 }
 
-/**
- * Encode the user info dict to JSON.
- *
- * @return [ NSString* ]
- */
-- (NSString*) encodeToJSON
-{
-    NSString* json;
-    NSData* data;
-    NSMutableDictionary* obj = [self.userInfo mutableCopy];
-    
-    [obj removeObjectForKey:@"updatedAt"];
-    
-    if (obj == NULL || obj.count == 0)
-        return json;
-    
-    data = [NSJSONSerialization dataWithJSONObject:obj
-                                           options:NSJSONWritingPrettyPrinted
-                                             error:NULL];
-    
-    json = [[NSString alloc] initWithData:data
-                                 encoding:NSUTF8StringEncoding];
-    
-    return [json stringByReplacingOccurrencesOfString:@"\n"
-                                           withString:@""];
-}
-
 #pragma mark -
 #pragma mark Private
 
 /**
  * The options used to initialize the notification.
  *
- * @return [ APPLocalNotificationOptions* ]
+ * @return [ APPNotificationOptions* ]
  */
-- (APPLocalNotificationOptions*) getOptions
+- (APPNotificationOptions*) getOptions
 {
     return objc_getAssociatedObject(self, &optionsKey);
 }
@@ -151,7 +124,7 @@ static char optionsKey;
  *
  * @return [ Void ]
  */
-- (void) setOptions:(APPLocalNotificationOptions*)options
+- (void) setOptions:(APPNotificationOptions*)options
 {
     objc_setAssociatedObject(self, &optionsKey,
                              options, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

+ 1 - 1
src/ios/APPLocalNotificationOptions.h → src/ios/APPNotificationOptions.h

@@ -23,7 +23,7 @@
 
 @import UserNotifications;
 
-@interface APPLocalNotificationOptions : NSObject
+@interface APPNotificationOptions : NSObject
 
 @property (readonly, getter=id)         NSNumber*            id;
 @property (readonly, getter=identifier) NSString*            identifier;

+ 4 - 4
src/ios/APPLocalNotificationOptions.m → src/ios/APPNotificationOptions.m

@@ -21,18 +21,18 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationOptions.h"
 
 @import UserNotifications;
 
-@interface APPLocalNotificationOptions ()
+@interface APPNotificationOptions ()
 
 // The dictionary which contains all notification properties
 @property(nonatomic, retain) NSDictionary* dict;
 
 @end
 
-@implementation APPLocalNotificationOptions
+@implementation APPNotificationOptions : NSObject
 
 @synthesize dict;
 
@@ -44,7 +44,7 @@
  *
  * @param [ NSDictionary* ] dict A key-value property map.
  *
- * @return [ APPLocalNotificationOptions ]
+ * @return [ APPNotificationOptions ]
  */
 - (id) initWithDict:(NSDictionary*)dictionary
 {

+ 2 - 2
src/ios/UNNotificationRequest+APPLocalNotification.h

@@ -21,14 +21,14 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationOptions.h"
 
 @import UserNotifications;
 
 @interface UNNotificationRequest (APPLocalNotification)
 
 // The options provided by the plug-in
-- (APPLocalNotificationOptions*) options;
+- (APPNotificationOptions*) options;
 // Encode the user info dict to JSON
 - (NSString*) encodeToJSON;
 

+ 7 - 7
src/ios/UNNotificationRequest+APPLocalNotification.m

@@ -21,9 +21,9 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "APPLocalNotificationOptions.h"
+#import "APPNotificationOptions.h"
 #import "UNNotificationRequest+APPLocalNotification.h"
-#import "UNMutableNotificationContent+APPLocalNotification.h"
+#import "APPNotificationContent.h"
 #import <objc/runtime.h>
 
 @import UserNotifications;
@@ -35,7 +35,7 @@ static char optionsKey;
 /**
  * Get associated option object
  */
-- (APPLocalNotificationOptions*) getOptions
+- (APPNotificationOptions*) getOptions
 {
     return objc_getAssociatedObject(self, &optionsKey);
 }
@@ -43,7 +43,7 @@ static char optionsKey;
 /**
  * Set associated option object
  */
-- (void) setOptions:(APPLocalNotificationOptions*)options
+- (void) setOptions:(APPNotificationOptions*)options
 {
     objc_setAssociatedObject(self, &optionsKey,
                              options, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
@@ -52,12 +52,12 @@ static char optionsKey;
 /**
  * The options provided by the plug-in.
  */
-- (APPLocalNotificationOptions*) options
+- (APPNotificationOptions*) options
 {
-    APPLocalNotificationOptions* options = [self getOptions];
+    APPNotificationOptions* options = [self getOptions];
 
     if (!options) {
-        options = [[APPLocalNotificationOptions alloc]
+        options = [[APPNotificationOptions alloc]
                    initWithDict:[self.content userInfo]];
 
         [self setOptions:options];

+ 1 - 1
src/ios/UNUserNotificationCenter+APPLocalNotification.h

@@ -21,7 +21,7 @@
  * @APPPLANT_LICENSE_HEADER_END@
  */
 
-#import "UNMutableNotificationContent+APPLocalNotification.h"
+#import "APPNotificationContent.h"
 
 @interface UNUserNotificationCenter (APPLocalNotification)
 

+ 31 - 179
www/local-notification.js

@@ -15,8 +15,6 @@
  * limitations under the License.
  */
 
-var exec = require('cordova/exec');
-
 /**
  * Request permission to show notifications.
  *
@@ -26,14 +24,7 @@ var exec = require('cordova/exec');
  * @return [ Void ]
  */
 exports.hasPermission = function (callback, scope) {
-    var fn = this.createCallbackFn(callback, scope);
-
-    if (device.platform != 'iOS') {
-        fn(true);
-        return;
-    }
-
-    exec(fn, null, 'LocalNotification', 'check', []);
+    this.core.hasPermission(callback, scope);
 };
 
 /**
@@ -45,14 +36,7 @@ exports.hasPermission = function (callback, scope) {
  * @return [ Void ]
  */
 exports.requestPermission = function (callback, scope) {
-    var fn = this.createCallbackFn(callback, scope);
-
-    if (device.platform != 'iOS') {
-        fn(true);
-        return;
-    }
-
-    exec(fn, null, 'LocalNotification', 'request', []);
+    this.core.requestPermission(callback, scope);
 };
 
 /**
@@ -65,28 +49,8 @@ exports.requestPermission = function (callback, scope) {
  *
  * @return [ Void ]
  */
-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.requestPermission(fn, this);
-    }
+exports.schedule = function (notifications, callback, scope, args) {
+    this.core.schedule(notifications, callback, scope, args);
 };
 
 // /**
@@ -102,27 +66,8 @@ exports.schedule = function (msgs, callback, scope, 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);
-//     }
+// exports.update = function (notifications, callback, scope, args) {
+//     this.core.update(notifications, callback, scope, args);
 // };
 
 // /**
@@ -136,10 +81,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     this.core.clear(ids, callback, scope);
 // };
 
 // /**
@@ -151,7 +93,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.clearAll = function (callback, scope) {
-//     this.exec('clearAll', null, callback, scope);
+//     this.core.clearAll(callback, scope);
 // };
 
 // /**
@@ -165,10 +107,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     this.core.cancel(ids, callback, scope);
 // };
 
 // /**
@@ -180,7 +119,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.cancelAll = function (callback, scope) {
-//     this.exec('cancelAll', null, callback, scope);
+//     this.core.cancelAll(callback, scope);
 // };
 
 // /**
@@ -194,7 +133,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.isPresent = function (id, callback, scope) {
-//     this.exec('isPresent', id || 0, callback, scope);
+//     this.core.isPresent(id, callback, scope);
 // };
 
 // /**
@@ -208,10 +147,10 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.isScheduled = function (id, callback, scope) {
-//     this.exec('isScheduled', id || 0, callback, scope);
+//     this.core.isScheduled(id, callback, scope);
 // };
 
-// /**
+// *
 //  * Check if a notification with an ID was triggered.
 //  *
 //  * @param {String} id
@@ -220,21 +159,21 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     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.exec('getAllIds', null, callback, scope);
+//     this.core.getAllIds(callback, scope);
 // };
 
 // /**
@@ -253,7 +192,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.getScheduledIds = function (callback, scope) {
-//     this.exec('getScheduledIds', null, callback, scope);
+//     this.core.getScheduledIds(callback, scope);
 // };
 
 // /**
@@ -265,7 +204,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.getTriggeredIds = function (callback, scope) {
-//     this.exec('getTriggeredIds', null, callback, scope);
+//     this.core.getTriggeredIds(callback, scope);
 // };
 
 // /**
@@ -280,24 +219,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     this.core.get.apply(this.core, arguments);
 // };
 
 // /**
@@ -309,7 +231,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.getAll = function (callback, scope) {
-//     this.exec('getAll', null, callback, scope);
+//     this.core.getAll(callback, scope);
 // };
 
 // /**
@@ -324,28 +246,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     this.core.getScheduled.apply(this.core, arguments);
 // };
 
 // /**
@@ -357,7 +258,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.getAllScheduled = function (callback, scope) {
-//     this.exec('getScheduled', null, callback, scope);
+//     this.core.getAllScheduled(callback, scope);
 // };
 
 // /**
@@ -372,28 +273,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      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);
+//     this.core.getTriggered.apply(this.core, arguments);
 // };
 
 // /**
@@ -405,7 +285,7 @@ exports.schedule = function (msgs, callback, scope, args) {
 //  *      The scope for the callback function
 //  */
 // exports.getAllTriggered = function (callback, scope) {
-//     this.exec('getTriggered', null, callback, scope);
+//     this.core.getAllTriggered(callback, scope);
 // };
 
 /**
@@ -414,7 +294,7 @@ exports.schedule = function (msgs, callback, scope, args) {
  * @return [ Object ]
  */
 exports.getDefaults = function () {
-    return this._defaults;
+    return this.core.getDefaults();
 };
 
 /**
@@ -424,14 +304,8 @@ exports.getDefaults = function () {
  *
  * @return [ Void ]
  */
-exports.setDefaults = function (newDefaults) {
-    var defaults = this.getDefaults();
-
-    for (var key in defaults) {
-        if (newDefaults.hasOwnProperty(key)) {
-            defaults[key] = newDefaults[key];
-        }
-    }
+exports.setDefaults = function (defaults) {
+    this.core.setDefaults(defaults);
 };
 
 /**
@@ -444,17 +318,7 @@ exports.setDefaults = function (newDefaults) {
  * @return [ Void ]
  */
 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);
+    this.core.on(event, callback, scope);
 };
 
 /**
@@ -466,17 +330,5 @@ exports.on = function (event, callback, scope) {
  * @return [ Void ]
  */
 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;
-        }
-    }
+    this.core.un(event, callback);
 };