Skip to content

Commit f661934

Browse files
authored
Merge pull request #511 from OneSignal/payload_parse_clean_up
Cleaned up payload conversion implementation
2 parents d11faf7 + 1212112 commit f661934

File tree

7 files changed

+23
-14
lines changed

7 files changed

+23
-14
lines changed
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/A/OneSignal

iOS_SDK/OneSignalSDK/Source/NSString+OneSignal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
- (NSString *)supportedFileExtension;
1919

2020
// returns a lower case hex representation of the data
21-
+ (NSString *)hexStringFromData:(NSData *)data;
21+
+ (nullable NSString *)hexStringFromData:(nonnull NSData *)data;
2222

2323
@end
2424
#endif

iOS_SDK/OneSignalSDK/Source/NSString+OneSignal.m

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#import "NSString+OneSignal.h"
99
#import "OneSignalCommonDefines.h"
10+
#import "OneSignalHelper.h"
1011

1112
#define MIME_MAP @{@"audio/aiff" : @"aiff", @"audio/x-wav" : @"wav", @"audio/mpeg" : @"mp3", @"video/mp4" : @"mp4", @"image/jpeg" : @"jpeg", @"image/jpg" : @"jpg", @"image/png" : @"png", @"image/gif" : @"gif", @"video/mpeg" : @"mpeg", @"video/mpg" : @"mpg", @"video/avi" : @"avi", @"sound/m4a" : @"m4a", @"video/m4v" : @"m4v"}
1213

@@ -59,15 +60,19 @@ - (NSString *)fileExtensionForMimeType {
5960
return MIME_MAP[self];
6061
}
6162

62-
+ (NSString *)hexStringFromData:(NSData *)data
63-
{
64-
NSMutableString *parsedDeviceToken = [NSMutableString new];
65-
const char *byteArray = (char *)data.bytes;
66-
67-
for (int i = 0; i < data.length; i++)
68-
[parsedDeviceToken appendFormat:@"%02.2hhx", byteArray[i]];
69-
70-
return [parsedDeviceToken copy];
63+
// Converts a nonnull NSData into a NSString in a lower case hex format.
64+
+ (nullable NSString *)hexStringFromData:(nonnull NSData *)data {
65+
let dataLength = data.length;
66+
if (dataLength == 0)
67+
return nil;
68+
69+
let dataBtyes = (unsigned char *)data.bytes;
70+
let hexString = [NSMutableString stringWithCapacity:dataLength * 2];
71+
for (var i = 0; i < dataLength; i++)
72+
[hexString appendFormat:@"%02x", dataBtyes[i]];
73+
74+
// Copy to make immutable
75+
return hexString.copy;
7176
}
7277

7378
@end

iOS_SDK/OneSignalSDK/Source/OSNotificationPayload+Internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
#define OSNotificationPayload_Internal_h
3232

3333
@interface OSNotificationPayload (Internal)
34-
+(instancetype)parseWithApns:(NSDictionary*)message;
34+
+(instancetype)parseWithApns:(nonnull NSDictionary*)message;
3535
@end
3636

3737
#endif /* OSNotificationPayload_Internal_h */

iOS_SDK/OneSignalSDK/Source/OSNotificationPayload.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
@implementation OSNotificationPayload
3535

36-
+(instancetype)parseWithApns:(NSDictionary*)message {
36+
+(instancetype)parseWithApns:(nonnull NSDictionary*)message {
3737
if (!message)
3838
return nil;
3939

iOS_SDK/OneSignalSDK/Source/OneSignal.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,11 @@ typedef NS_ENUM(NSUInteger, OSNotificationDisplayType) {
151151

152152
/* iOS 10+ : Groups notifications into threads */
153153
@property(readonly)NSString *threadId;
154-
+(instancetype)parseWithApns:(NSDictionary*)message;
154+
155+
/* Parses an APS push payload into a OSNotificationPayload object.
156+
Useful to call from your NotificationServiceExtension when the
157+
didReceiveNotificationRequest:withContentHandler: method fires. */
158+
+(instancetype)parseWithApns:(nonnull NSDictionary*)message;
155159

156160
@end
157161

iOS_SDK/OneSignalSDK/Source/OneSignal.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2089,7 +2089,7 @@ + (void)didRegisterForRemoteNotifications:(UIApplication *)app
20892089
if ([OneSignal shouldLogMissingPrivacyConsentErrorWithMethodName:nil])
20902090
return;
20912091

2092-
NSString *parsedDeviceToken = [NSString hexStringFromData:inDeviceToken];
2092+
let parsedDeviceToken = [NSString hexStringFromData:inDeviceToken];
20932093

20942094
[OneSignal onesignal_Log:ONE_S_LL_INFO message: [NSString stringWithFormat:@"Device Registered with Apple: %@", parsedDeviceToken]];
20952095

0 commit comments

Comments
 (0)