Commit 1baf850e authored by Sebastián Katzer's avatar Sebastián Katzer
Browse files

Add `isNotificationScheduled:` helper

parent edbf05ed
Loading
Loading
Loading
Loading
+27 −14
Changes for src/ios/APPLocalNotification.m: 27 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@
- (void) didFinishLaunchingWithOptions:(NSNotification*)notification;
// Hilfsmethode gibt an, ob er String NULL oder Empty ist
- (BOOL) strIsNullOrEmpty:(NSString*)str;
// Checks wether a notification with an ID is scheduled or not.
- (BOOL) isNotificationScheduledWithId:(NSString*) id;
// Fires the given event
- (void) fireEvent:(NSString*) event id:(NSString*) id json:(NSString*) json;

@@ -123,22 +125,9 @@ NSString *const kAPP_LOCALNOTIFICATION = @"APP_LOCALNOTIFICATION";
    [self.commandDelegate runInBackground:^{
        NSArray* arguments = [command arguments];
        NSString* id       = [arguments objectAtIndex:0];
        bool isScheduled   = NO;
        bool isScheduled   = [self isNotificationScheduledWithId:id];
        CDVPluginResult* result;

        NSArray* notifications = [[UIApplication sharedApplication]
                                  scheduledLocalNotifications];

        for (UILocalNotification* notification in notifications)
        {
            NSString* notId = [notification.userInfo objectForKey:@"id"];

            if ([notId isEqualToString:id]) {
                isScheduled = YES;
                break;
            }
        }

        result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK
                                     messageAsBool:isScheduled];

@@ -415,6 +404,30 @@ NSString *const kAPP_LOCALNOTIFICATION = @"APP_LOCALNOTIFICATION";
    return (str == (NSString*)[NSNull null] || [str isEqualToString:@""]) ? YES : NO;
}

/**
 * Checks wether a notification with an ID is scheduled or not.
 *
 * @param id
 *      The ID of the notification
 * @return BOOL
 */
- (BOOL) isNotificationScheduledWithId:(NSString*) id
{
    NSArray* notifications = [[UIApplication sharedApplication]
                              scheduledLocalNotifications];

    for (UILocalNotification* notification in notifications)
    {
        NSString* notId = [notification.userInfo objectForKey:@"id"];

        if ([notId isEqualToString:id]) {
            return YES;
        }
    }

    return NO;
}

/**
 * Fires the given event.
 *