Commit 856646fe authored by Sebastián Katzer's avatar Sebastián Katzer
Browse files

Fix bug in `cancel` under iOS.

The method tried to read the stored id with the wrong dict key. Thats why a notification could not be canceled.
parent c00e6cdf
Loading
Loading
Loading
Loading
+3 −12
Changes for src/ios/APPLocalNotification.m: 3 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -51,9 +51,9 @@

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

		if ([notificationId isEqualToString:notId])
		if ([notificationId isEqualToString:id])
        {
			[[UIApplication sharedApplication] cancelLocalNotification:notification];
		}
@@ -106,25 +106,16 @@
	NSString*            title              = [options objectForKey:@"title"];
	NSString*            sound              = [options objectForKey:@"sound"];
	NSString*            repeat             = [options objectForKey:@"repeat"];
    bool                 hasAction          = ([[options objectForKey:@"hasAction"] intValue] == 1)?YES:NO;
	NSInteger            badge              = [[options objectForKey:@"badge"] intValue];
	NSDate*              date               = [NSDate dateWithTimeIntervalSince1970:timestamp];

	NSDate*              date               = [NSDate dateWithTimeIntervalSince1970:timestamp];
	UILocalNotification* notification       = [[UILocalNotification alloc] init];

	notification.fireDate                   = date;
	notification.timeZone                   = [NSTimeZone defaultTimeZone];
	notification.repeatInterval             = [[[self repeatDict] objectForKey: repeat] intValue];
    if ([msg isEqualToString:@""]) {
        //No message, we just want to update the badge
        notification.alertBody = nil;
    } else {
	notification.alertBody                  = title ? [NSString stringWithFormat:@"%@\n%@", title, msg] : msg;
    }
	if ( ! [sound isEqualToString:@""]) {
	notification.soundName                  = sound;
    }
    notification.hasAction                  = hasAction;
	notification.applicationIconBadgeNumber = badge;

    return notification;