Skip to content

Commit

Permalink
use the notification meta data instead
Browse files Browse the repository at this point in the history
  • Loading branch information
KennyHuRadar committed Dec 10, 2024
1 parent ccb016b commit 3e94229
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 52 deletions.
13 changes: 0 additions & 13 deletions RadarSDK/Radar.m
Original file line number Diff line number Diff line change
Expand Up @@ -538,19 +538,6 @@ + (void)logConversionWithNotification:(UNNotificationRequest *)request
deliveredAfter:(NSDate *)deliveredAfter {

NSMutableDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:request.content.userInfo];
NSDictionary<NSString *, NSString *> *result = [RadarNotificationHelper extractMetadataFromNotificationIdentifier: request.identifier];
if (result) {
NSString *geofenceId = result[@"geofenceId"];
[metadata setValue:geofenceId forKey:@"geofenceId"];
NSString *timestamp = result[@"registeredAt"];
[metadata setValue:timestamp forKey:@"registeredAt"];
if (deliveredAfter) {
[metadata setObject:deliveredAfter forKey:@"deliveredAfter"];
}
if (result[@"campaignId"]) {
[metadata setValue:result[@"campaignId"] forKey:@"campaignId"];
}
}

if (conversionSource) {
[metadata setValue:conversionSource forKey:@"conversionSource"];
Expand Down
14 changes: 10 additions & 4 deletions RadarSDK/RadarLocationManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -570,9 +570,19 @@ - (void)replaceSyncedGeofences:(NSArray<RadarGeofence *> *)geofences {
content.body = [NSString localizedUserNotificationStringForKey:notificationText arguments:nil];

NSMutableDictionary *mutableUserInfo = [geofence.metadata mutableCopy];

mutableUserInfo[@"geofenceId"] = geofence._id;
NSDate *now = [NSDate new];
NSTimeInterval lastSyncInterval = [now timeIntervalSince1970];
mutableUserInfo[@"registeredAt"] = [NSString stringWithFormat:@"%f", lastSyncInterval];

if (notificationURL) {
mutableUserInfo[@"url"] = notificationURL;
}

if (campaignId) {
mutableUserInfo[@"campaignId"] = campaignId;
}

content.userInfo = [mutableUserInfo copy];

Expand All @@ -589,10 +599,6 @@ - (void)replaceSyncedGeofences:(NSArray<RadarGeofence *> *)geofences {
[[RadarLogger sharedInstance] logWithLevel:RadarLogLevelDebug message:@"Notification does not repeat"];
}

if (campaignId) {
identifier = [RadarNotificationHelper getNotificationIdentifier:geofenceId campaignId:campaignId];
}

UNLocationNotificationTrigger *trigger = [UNLocationNotificationTrigger triggerWithRegion:region repeats:repeats];

UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifier content:content trigger:trigger];
Expand Down
4 changes: 0 additions & 4 deletions RadarSDK/RadarNotificationHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@ typedef void (^NotificationPermissionCheckCompletion)(BOOL granted);

+ (void)openURLFromNotification:(UNNotification *)notification;

+ (NSString *)getNotificationIdentifier:(NSString *)geofenceId campaignId:(NSString *)campaignId;

+ (NSDictionary<NSString *, NSString *> *)extractMetadataFromNotificationIdentifier:(NSString *)identifier;

@end

NS_ASSUME_NONNULL_END
31 changes: 0 additions & 31 deletions RadarSDK/RadarNotificationHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -217,35 +217,4 @@ + (void)checkNotificationPermissionsWithCompletionHandler:(NotificationPermissio
}
}

+ (NSString *)getNotificationIdentifier:(NSString *)geofenceId campaignId:(NSString *)campaignId {
NSString *identifier = [NSString stringWithFormat:@"%@%@", kSyncGeofenceIdentifierPrefix, geofenceId];
NSDate *now = [NSDate new];
NSTimeInterval lastSyncInterval = [now timeIntervalSince1970];
identifier = [identifier stringByAppendingString:[NSString stringWithFormat:@"_%f", lastSyncInterval]];
if (campaignId) {
identifier = [identifier stringByAppendingString:@"_"];
identifier = [identifier stringByAppendingString:campaignId];
}
return identifier;
}

+ (NSDictionary<NSString *, NSString *> *)extractMetadataFromNotificationIdentifier:(NSString *)identifier {
NSDictionary<NSString *, NSString *> *result = nil;
if ([identifier hasPrefix:kSyncGeofenceIdentifierPrefix]) {
NSArray<NSString *> *components = [identifier componentsSeparatedByString:@"_"];
if (components.count >= 4) {
NSString *geofenceId = components[2];
NSString *registeredAt = components[3];
if (components.count == 5) {
NSString *campaignId = components[4];
result = @{@"geofenceId": geofenceId, @"registeredAt": registeredAt, @"campaignId":campaignId};
} else {

result = @{@"geofenceId": geofenceId, @"registeredAt": registeredAt};
}
}
}
return result;
}

@end

0 comments on commit 3e94229

Please sign in to comment.