react-native-notify-kit 10.4.9 → 10.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +60 -2
  2. package/android/src/main/java/app/notifee/core/Notifee.java +9 -0
  3. package/android/src/main/java/app/notifee/core/ReceiverService.java +41 -4
  4. package/android/src/main/java/app/notifee/core/model/NotificationAndroidStyleModel.java +63 -34
  5. package/android/src/main/java/app/notifee/core/utility/FullScreenIntentUtils.java +53 -0
  6. package/android/src/main/java/app/notifee/core/utility/ResourceUtils.java +15 -1
  7. package/android/src/test/java/app/notifee/core/ReceiverServicePendingIntentIdentityTest.java +303 -0
  8. package/android/src/test/java/app/notifee/core/model/NotificationAndroidStyleModelPersonFailureTest.java +337 -0
  9. package/android/src/test/java/app/notifee/core/model/TimestampTriggerModelTest.java +27 -70
  10. package/android/src/test/java/app/notifee/core/utility/FullScreenIntentUtilsTest.java +83 -0
  11. package/android/src/test/java/app/notifee/core/utility/ResourceUtilsBitmapOwnershipTest.java +145 -0
  12. package/dist/NotifeeApiModule.js +4 -0
  13. package/dist/NotifeeApiModule.js.map +1 -1
  14. package/dist/types/Notification.d.ts +2 -1
  15. package/dist/types/Notification.js.map +1 -1
  16. package/dist/types/NotificationAndroid.d.ts +17 -5
  17. package/dist/types/NotificationAndroid.js.map +1 -1
  18. package/dist/validators/validateAndroidNotification.js +4 -0
  19. package/dist/validators/validateAndroidNotification.js.map +1 -1
  20. package/dist/version.d.ts +1 -1
  21. package/dist/version.js +1 -1
  22. package/ios/NotifeeCore/NotifeeCoreExtensionHelper.m +285 -91
  23. package/ios/NotifeeCore/NotifeeCoreUtil.m +159 -13
  24. package/jest-mock.js +1 -0
  25. package/package.json +2 -2
  26. package/server/README.md +6 -4
  27. package/server/dist/android.d.ts +8 -0
  28. package/server/dist/android.d.ts.map +1 -0
  29. package/server/dist/android.js +20 -0
  30. package/server/dist/android.js.map +1 -0
  31. package/server/dist/buildPayload.d.ts +3 -0
  32. package/server/dist/buildPayload.d.ts.map +1 -0
  33. package/server/dist/buildPayload.js +82 -0
  34. package/server/dist/buildPayload.js.map +1 -0
  35. package/server/dist/index.d.ts +6 -0
  36. package/server/dist/index.d.ts.map +1 -0
  37. package/server/dist/index.js +12 -0
  38. package/server/dist/index.js.map +1 -0
  39. package/server/dist/ios.d.ts +11 -0
  40. package/server/dist/ios.d.ts.map +1 -0
  41. package/server/dist/ios.js +61 -0
  42. package/server/dist/ios.js.map +1 -0
  43. package/server/dist/serialize.d.ts +11 -0
  44. package/server/dist/serialize.d.ts.map +1 -0
  45. package/server/dist/serialize.js +32 -0
  46. package/server/dist/serialize.js.map +1 -0
  47. package/server/dist/types.d.ts +2 -0
  48. package/server/dist/types.d.ts.map +1 -0
  49. package/server/dist/types.js +3 -0
  50. package/server/dist/types.js.map +1 -0
  51. package/server/dist/validation.d.ts +3 -0
  52. package/server/dist/validation.d.ts.map +1 -0
  53. package/server/dist/validation.js +115 -0
  54. package/server/dist/validation.js.map +1 -0
  55. package/server/src/android.ts +4 -4
  56. package/server/src/validation.ts +20 -0
  57. package/src/NotifeeApiModule.ts +4 -0
  58. package/src/internal/fcmContract.d.ts +10 -8
  59. package/src/types/Notification.ts +2 -1
  60. package/src/types/NotificationAndroid.ts +18 -5
  61. package/src/validators/validateAndroidNotification.ts +7 -0
  62. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validateAndroidNotification.js","sourceRoot":"","sources":["../../src/validators/validateAndroidNotification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateAndroidNotification.js","sourceRoot":"","sources":["../../src/validators/validateAndroidNotification.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "10.4.9";
1
+ export declare const version = "10.6.0";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '10.4.9';
2
+ export const version = '10.6.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -22,9 +22,21 @@
22
22
 
23
23
  static NSString *const kNoExtension = @"";
24
24
  static NSString *const kImagePathPrefix = @"image/";
25
+ static NSTimeInterval const kNotifeeExtensionOrchestrationTimeoutInterval = 25.0;
26
+ static NSTimeInterval const kNotifeeExtensionFinalizationReserveInterval = 5.0;
27
+
28
+ @interface NotifeeCoreUtil (NotifeeCoreExtensionHelper)
29
+ + (INSendMessageIntent *)generateSenderIntentForCommunicationNotification:
30
+ (NSDictionary *)communicationInfo
31
+ deadline:(dispatch_time_t)deadline;
32
+ @end
25
33
 
26
34
  @interface NotifeeCoreExtensionHelper ()
27
35
  - (NSMutableDictionary *)parseNotifeeOptions:(id)payload;
36
+ - (NSTimeInterval)orchestrationTimeoutInterval;
37
+ - (dispatch_time_t)orchestrationCurrentTime;
38
+ - (void)scheduleOrchestrationFinalizerAtDeadline:(dispatch_time_t)deadline
39
+ block:(dispatch_block_t)block;
28
40
  - (void)loadAttachment:(NSDictionary *)attachmentDict
29
41
  completionHandler:(void (^)(UNNotificationAttachment *))completionHandler;
30
42
  @end
@@ -34,13 +46,26 @@ static NSString *const kImagePathPrefix = @"image/";
34
46
  @property(nonatomic, copy) void (^contentHandler)(UNNotificationContent *content);
35
47
  @property(nonatomic, strong) UNMutableNotificationContent *modifiedContent;
36
48
  @property(nonatomic, assign) BOOL notificationDelivered;
49
+ @property(nonatomic, assign) BOOL orchestrationExpired;
50
+ @property(nonatomic, assign) BOOL attachmentCompleted;
51
+ @property(nonatomic, assign) BOOL communicationCompleted;
52
+ @property(nonatomic, strong, nullable) UNNotificationAttachment *pendingAttachment;
53
+ @property(nonatomic, assign) dispatch_time_t orchestrationDeadline;
54
+ @property(nonatomic, assign) dispatch_time_t mediaCutoff;
37
55
 
38
56
  - (instancetype)initWithHelper:(NotifeeCoreExtensionHelper *)helper
39
57
  content:(UNMutableNotificationContent *)content
40
58
  contentHandler:(void (^)(UNNotificationContent *content))contentHandler;
41
59
  - (void)populateNotificationContentWithRequest:(UNNotificationRequest *_Nullable)request;
60
+ - (NSDictionary *)attachmentDictionaryFromOptions:(NSMutableDictionary *)options;
61
+ - (void)startOrchestrationWithOptions:(NSMutableDictionary *)options;
42
62
  - (void)processCommunicationData:(NSMutableDictionary *)options;
43
- - (void)handleAttachmentsAndDeliverNotificaiton:(NSMutableDictionary *)options;
63
+ - (void)completeAttachment:(UNNotificationAttachment *_Nullable)attachment;
64
+ - (void)completeCommunicationWithContent:
65
+ (UNMutableNotificationContent *_Nullable)communicationContent;
66
+ - (BOOL)markExpiredIfDeadlineReachedLocked;
67
+ - (void)expireAndDeliverNotification;
68
+ - (void)deliverNotificationIfReady;
44
69
  - (void)deliverNotification;
45
70
  @end
46
71
 
@@ -55,6 +80,16 @@ static NSString *const kImagePathPrefix = @"image/";
55
80
  self.contentHandler = [contentHandler copy];
56
81
  self.modifiedContent = content;
57
82
  self.notificationDelivered = NO;
83
+ self.orchestrationExpired = NO;
84
+ self.attachmentCompleted = NO;
85
+ self.communicationCompleted = NO;
86
+ NSTimeInterval timeoutInterval = [helper orchestrationTimeoutInterval];
87
+ self.orchestrationDeadline =
88
+ dispatch_time([helper orchestrationCurrentTime],
89
+ (int64_t)(MAX(timeoutInterval, 0.0) * (NSTimeInterval)NSEC_PER_SEC));
90
+ self.mediaCutoff = dispatch_time(
91
+ self.orchestrationDeadline,
92
+ -(int64_t)(kNotifeeExtensionFinalizationReserveInterval * (NSTimeInterval)NSEC_PER_SEC));
58
93
  }
59
94
 
60
95
  return self;
@@ -95,84 +130,215 @@ static NSString *const kImagePathPrefix = @"image/";
95
130
  }
96
131
 
97
132
  self.modifiedContent = [NotifeeCore buildNotificationContent:options withTrigger:nil];
98
- [self processCommunicationData:options];
133
+ [self startOrchestrationWithOptions:options];
99
134
  }
100
135
 
101
- - (void)processCommunicationData:(NSMutableDictionary *)options {
102
- if (options[@"ios"] == nil || options[@"ios"][@"communicationInfo"] == nil) {
103
- [self handleAttachmentsAndDeliverNotificaiton:options];
136
+ - (NSDictionary *)attachmentDictionaryFromOptions:(NSMutableDictionary *)options {
137
+ NSMutableDictionary *attachmentDict = [NSMutableDictionary new];
138
+
139
+ if (options[@"ios"] != nil && options[@"ios"][@"attachments"] != nil &&
140
+ [options[@"ios"][@"attachments"] isKindOfClass:[NSArray class]] &&
141
+ [options[@"ios"][@"attachments"] count] != 0) {
142
+ attachmentDict = options[@"ios"][@"attachments"][0];
143
+ }
144
+
145
+ // Check if image url is in payload and parse it if attachmentDict is empty
146
+ NSString *currentImageURL = options[kPayloadOptionsImageURLName];
147
+ if ([attachmentDict count] == 0 && ![currentImageURL isEqual:[NSNull null]] &&
148
+ currentImageURL.length > 1) {
149
+ // make into an attachment dict
150
+ attachmentDict[@"url"] = currentImageURL;
151
+ }
152
+
153
+ return attachmentDict;
154
+ }
155
+
156
+ - (void)startOrchestrationWithOptions:(NSMutableDictionary *)options {
157
+ NSDictionary *attachmentDict = [self attachmentDictionaryFromOptions:options];
158
+ BOOL hasAttachment = [attachmentDict count] != 0;
159
+ BOOL hasCommunication = options[@"ios"] != nil && options[@"ios"][@"communicationInfo"] != nil;
160
+ dispatch_time_t finalDeadline = 0;
161
+
162
+ @synchronized(self) {
163
+ self.attachmentCompleted = !hasAttachment;
164
+ self.communicationCompleted = !hasCommunication;
165
+ finalDeadline = self.orchestrationDeadline;
166
+ }
167
+
168
+ if (!hasAttachment && !hasCommunication) {
169
+ [self deliverNotification];
104
170
  return;
105
171
  }
106
172
 
173
+ __weak __typeof(self) weakSelf = self;
174
+ [self.helper scheduleOrchestrationFinalizerAtDeadline:finalDeadline
175
+ block:^{
176
+ [weakSelf expireAndDeliverNotification];
177
+ }];
178
+
179
+ // Start the attachment first so its existing network timeout overlaps avatar
180
+ // materialization.
181
+ if (hasAttachment) {
182
+ [self.helper loadAttachment:attachmentDict
183
+ completionHandler:^(UNNotificationAttachment *attachment) {
184
+ [self completeAttachment:attachment];
185
+ }];
186
+ }
187
+
188
+ if (hasCommunication) {
189
+ [self processCommunicationData:options];
190
+ }
191
+ }
192
+
193
+ - (void)processCommunicationData:(NSMutableDictionary *)options {
107
194
  if (@available(iOS 15.0, *)) {
108
195
  NSMutableDictionary *communicationInfo = [options[@"ios"][@"communicationInfo"] mutableCopy];
109
196
  communicationInfo[@"body"] = options[@"body"];
197
+
198
+ UNMutableNotificationContent *contentForProvider = nil;
199
+ dispatch_time_t mediaCutoff = 0;
200
+ BOOL shouldDeliverExpiredContent = NO;
201
+ @synchronized(self) {
202
+ if (!self.notificationDelivered && ![self markExpiredIfDeadlineReachedLocked] &&
203
+ self.modifiedContent != nil) {
204
+ contentForProvider = [self.modifiedContent mutableCopy];
205
+ mediaCutoff = self.mediaCutoff;
206
+ } else if (!self.notificationDelivered && self.orchestrationExpired) {
207
+ shouldDeliverExpiredContent = YES;
208
+ }
209
+ }
210
+
211
+ if (contentForProvider == nil) {
212
+ if (shouldDeliverExpiredContent) {
213
+ [self deliverNotification];
214
+ }
215
+ return;
216
+ }
217
+
110
218
  INSendMessageIntent *intent = [NotifeeCoreUtil
111
- generateSenderIntentForCommunicationNotification:options[@"ios"][@"communicationInfo"]];
219
+ generateSenderIntentForCommunicationNotification:options[@"ios"][@"communicationInfo"]
220
+ deadline:mediaCutoff];
221
+
222
+ BOOL providerMayStart = NO;
223
+ shouldDeliverExpiredContent = NO;
224
+ @synchronized(self) {
225
+ providerMayStart = !self.notificationDelivered && ![self markExpiredIfDeadlineReachedLocked];
226
+ shouldDeliverExpiredContent = !self.notificationDelivered && self.orchestrationExpired;
227
+ }
228
+
229
+ if (!providerMayStart) {
230
+ if (shouldDeliverExpiredContent) {
231
+ [self deliverNotification];
232
+ }
233
+ return;
234
+ }
235
+
112
236
  // Use the intent to initialize the interaction.
113
237
  INInteraction *interaction = [[INInteraction alloc] initWithIntent:intent response:nil];
114
238
  interaction.direction = INInteractionDirectionIncoming;
115
239
 
116
240
  NSError *error = nil;
117
241
  UNNotificationContent *updatedContent =
118
- [self.modifiedContent contentByUpdatingWithProvider:intent error:&error];
242
+ [contentForProvider contentByUpdatingWithProvider:intent error:&error];
119
243
  if (error) {
120
- NSLog(@"NotifeeCoreExtensionHelper: Could not update notification content: %@", error);
121
- [self handleAttachmentsAndDeliverNotificaiton:options];
244
+ NSLog(@"NotifeeCoreExtensionHelper: Could not update notification "
245
+ @"content: %@",
246
+ error);
247
+ [self completeCommunicationWithContent:nil];
122
248
  return;
123
249
  }
124
250
 
125
251
  NSLog(@"NotifeeCoreExtensionHelper: Processing communication notification");
126
- self.modifiedContent = [updatedContent mutableCopy];
127
- [self handleAttachmentsAndDeliverNotificaiton:options];
252
+ [self completeCommunicationWithContent:[updatedContent mutableCopy]];
128
253
 
129
254
  [interaction donateInteractionWithCompletion:^(NSError *error) {
130
255
  if (error)
131
- NSLog(@"NotifeeCoreExtensionHelper: Could not donate interaction for communication "
256
+ NSLog(@"NotifeeCoreExtensionHelper: Could not donate interaction for "
257
+ @"communication "
132
258
  @"notification: %@",
133
259
  error);
134
260
  }];
135
261
  } else {
136
262
  // Skip, Communication notifications not supported on iOS 15
137
- [self handleAttachmentsAndDeliverNotificaiton:options];
263
+ [self completeCommunicationWithContent:nil];
138
264
  }
139
265
  }
140
266
 
141
- - (void)handleAttachmentsAndDeliverNotificaiton:(NSMutableDictionary *)options {
142
- NSMutableDictionary *attachmentDict = [NSMutableDictionary new];
267
+ - (void)completeAttachment:(UNNotificationAttachment *_Nullable)attachment {
268
+ @synchronized(self) {
269
+ if (self.notificationDelivered) {
270
+ return;
271
+ }
143
272
 
144
- if (options[@"ios"] != nil && options[@"ios"][@"attachments"] != nil &&
145
- [options[@"ios"][@"attachments"] isKindOfClass:[NSArray class]] &&
146
- [options[@"ios"][@"attachments"] count] != 0) {
147
- attachmentDict = options[@"ios"][@"attachments"][0];
273
+ if ([self markExpiredIfDeadlineReachedLocked]) {
274
+ // The finalizer may still be waiting for its queue. Converge immediately
275
+ // on the same request-local delivery path without publishing this late
276
+ // result.
277
+ } else if (self.attachmentCompleted) {
278
+ return;
279
+ } else {
280
+ self.pendingAttachment = attachment;
281
+ self.attachmentCompleted = YES;
282
+ }
148
283
  }
149
284
 
150
- // Check if image url is in payload and parse it if attachmentDict is empty
151
- NSString *currentImageURL = options[kPayloadOptionsImageURLName];
152
- if ([attachmentDict count] == 0 && ![currentImageURL isEqual:[NSNull null]] &&
153
- currentImageURL.length > 1) {
154
- // make into an attachment dict
155
- attachmentDict[@"url"] = currentImageURL;
285
+ [self deliverNotificationIfReady];
286
+ }
287
+
288
+ - (void)completeCommunicationWithContent:
289
+ (UNMutableNotificationContent *_Nullable)communicationContent {
290
+ @synchronized(self) {
291
+ if (self.notificationDelivered) {
292
+ return;
293
+ }
294
+
295
+ if ([self markExpiredIfDeadlineReachedLocked]) {
296
+ // A provider completion at or after D is not allowed to win merely
297
+ // because the scheduled finalizer has not executed yet.
298
+ } else if (self.communicationCompleted) {
299
+ return;
300
+ } else {
301
+ if (communicationContent != nil) {
302
+ self.modifiedContent = communicationContent;
303
+ }
304
+ self.communicationCompleted = YES;
305
+ }
156
306
  }
157
307
 
158
- if ([attachmentDict count] == 0) {
159
- [self deliverNotification];
160
- return;
308
+ [self deliverNotificationIfReady];
309
+ }
310
+
311
+ - (BOOL)markExpiredIfDeadlineReachedLocked {
312
+ if (!self.orchestrationExpired && self.orchestrationDeadline != DISPATCH_TIME_FOREVER &&
313
+ [self.helper orchestrationCurrentTime] >= self.orchestrationDeadline) {
314
+ self.orchestrationExpired = YES;
161
315
  }
162
316
 
163
- // Attempt to download attachment
164
- [self.helper loadAttachment:attachmentDict
165
- completionHandler:^(UNNotificationAttachment *attachment) {
166
- if (attachment != nil) {
167
- @synchronized(self) {
168
- if (!self.notificationDelivered && self.modifiedContent != nil) {
169
- self.modifiedContent.attachments = @[ attachment ];
170
- }
171
- }
172
- }
317
+ return self.orchestrationExpired;
318
+ }
173
319
 
174
- [self deliverNotification];
175
- }];
320
+ - (void)expireAndDeliverNotification {
321
+ @synchronized(self) {
322
+ if (self.notificationDelivered) {
323
+ return;
324
+ }
325
+ self.orchestrationExpired = YES;
326
+ }
327
+
328
+ [self deliverNotification];
329
+ }
330
+
331
+ - (void)deliverNotificationIfReady {
332
+ BOOL readyToDeliver = NO;
333
+ @synchronized(self) {
334
+ readyToDeliver =
335
+ !self.notificationDelivered && ([self markExpiredIfDeadlineReachedLocked] ||
336
+ (self.attachmentCompleted && self.communicationCompleted));
337
+ }
338
+
339
+ if (readyToDeliver) {
340
+ [self deliverNotification];
341
+ }
176
342
  }
177
343
 
178
344
  - (void)deliverNotification {
@@ -184,11 +350,18 @@ static NSString *const kImagePathPrefix = @"image/";
184
350
  return;
185
351
  }
186
352
 
353
+ [self markExpiredIfDeadlineReachedLocked];
354
+
355
+ if (self.pendingAttachment != nil && self.modifiedContent != nil) {
356
+ self.modifiedContent.attachments = @[ self.pendingAttachment ];
357
+ }
358
+
187
359
  contentHandler = [self.contentHandler copy];
188
360
  modifiedContent = self.modifiedContent;
189
361
  self.notificationDelivered = YES;
190
362
  self.contentHandler = nil;
191
363
  self.modifiedContent = nil;
364
+ self.pendingAttachment = nil;
192
365
  }
193
366
 
194
367
  if (contentHandler != nil && modifiedContent != nil) {
@@ -209,6 +382,19 @@ static NSString *const kImagePathPrefix = @"image/";
209
382
  return instance;
210
383
  }
211
384
 
385
+ - (NSTimeInterval)orchestrationTimeoutInterval {
386
+ return kNotifeeExtensionOrchestrationTimeoutInterval;
387
+ }
388
+
389
+ - (dispatch_time_t)orchestrationCurrentTime {
390
+ return dispatch_time(DISPATCH_TIME_NOW, 0);
391
+ }
392
+
393
+ - (void)scheduleOrchestrationFinalizerAtDeadline:(dispatch_time_t)deadline
394
+ block:(dispatch_block_t)block {
395
+ dispatch_after(deadline, dispatch_get_global_queue(QOS_CLASS_UTILITY, 0), block);
396
+ }
397
+
212
398
  - (NSMutableDictionary *)parseNotifeeOptions:(id)payload {
213
399
  if ([payload isKindOfClass:[NSDictionary class]]) {
214
400
  return [payload mutableCopy];
@@ -217,7 +403,8 @@ static NSString *const kImagePathPrefix = @"image/";
217
403
  if ([payload isKindOfClass:[NSString class]]) {
218
404
  NSData *optionsData = [payload dataUsingEncoding:NSUTF8StringEncoding];
219
405
  if (optionsData == nil) {
220
- NSLog(@"NotifeeCoreExtensionHelper: Could not decode notifee_options string as UTF-8");
406
+ NSLog(@"NotifeeCoreExtensionHelper: Could not decode notifee_options "
407
+ @"string as UTF-8");
221
408
  return nil;
222
409
  }
223
410
 
@@ -227,12 +414,15 @@ static NSString *const kImagePathPrefix = @"image/";
227
414
  error:&error];
228
415
 
229
416
  if (error != nil) {
230
- NSLog(@"NotifeeCoreExtensionHelper: Could not parse notifee_options JSON: %@", error);
417
+ NSLog(@"NotifeeCoreExtensionHelper: Could not parse notifee_options "
418
+ @"JSON: %@",
419
+ error);
231
420
  return nil;
232
421
  }
233
422
 
234
423
  if (![jsonObject isKindOfClass:[NSDictionary class]]) {
235
- NSLog(@"NotifeeCoreExtensionHelper: Ignoring notifee_options JSON because it is not a "
424
+ NSLog(@"NotifeeCoreExtensionHelper: Ignoring notifee_options JSON "
425
+ @"because it is not a "
236
426
  @"dictionary: %@",
237
427
  NSStringFromClass([jsonObject class]));
238
428
  return nil;
@@ -241,7 +431,8 @@ static NSString *const kImagePathPrefix = @"image/";
241
431
  return [jsonObject mutableCopy];
242
432
  }
243
433
 
244
- NSLog(@"NotifeeCoreExtensionHelper: Ignoring notifee_options because it is not a dictionary "
434
+ NSLog(@"NotifeeCoreExtensionHelper: Ignoring notifee_options because it is "
435
+ @"not a dictionary "
245
436
  @"or JSON string: %@",
246
437
  NSStringFromClass([payload class]));
247
438
  return nil;
@@ -276,58 +467,61 @@ static NSString *const kImagePathPrefix = @"image/";
276
467
  NSString *attachmentIdentifier = attachmentDict[@"id"];
277
468
  NSURL *attachmentURL = [NSURL URLWithString:attachmentDict[@"url"]];
278
469
 
279
- // NSE has a ~30-second budget before iOS calls serviceExtensionTimeWillExpire
280
- // and kills the process. Cap the download at 25 seconds to leave a 5-second
281
- // margin for graceful fallback via the extension's expiration handler.
470
+ // NSE has a ~30-second budget before iOS calls
471
+ // serviceExtensionTimeWillExpire and kills the process. Cap the download at
472
+ // 25 seconds to leave a 5-second margin for graceful fallback via the
473
+ // extension's expiration handler.
282
474
  NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
283
475
  config.timeoutIntervalForRequest = 25.0;
284
476
  config.timeoutIntervalForResource = 25.0;
285
477
  NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
286
- [[session
287
- downloadTaskWithURL:attachmentURL
288
- completionHandler:^(NSURL *temporaryFileLocation, NSURLResponse *response,
289
- NSError *error) {
290
- if (error != nil) {
291
- NSLog(
292
- @"NotifeeCoreExtensionHelper: An exception occurred while attempting to download "
293
- @"image with URL %@: "
294
- @"%@",
295
- attachmentURL, error);
296
- completionHandler(attachment);
297
- return;
298
- }
299
-
300
- NSFileManager *fileManager = [NSFileManager defaultManager];
301
- NSString *fileExtension = [self fileExtensionForResponse:response];
302
- NSURL *localURL = [NSURL
303
- fileURLWithPath:[temporaryFileLocation.path stringByAppendingString:fileExtension]];
304
- [fileManager moveItemAtURL:temporaryFileLocation toURL:localURL error:&error];
305
- if (error) {
306
- NSLog(@"NotifeeCoreExtensionHelper: Failed to move the image file to local location: "
307
- @"%@, error %@",
308
- localURL, error);
309
- completionHandler(attachment);
310
- return;
311
- }
312
-
313
- attachment = [UNNotificationAttachment
314
- attachmentWithIdentifier:attachmentIdentifier
315
- URL:localURL
316
- options:[NotifeeCoreUtil
317
- attachmentOptionsFromDictionary:attachmentDict]
318
- error:&error];
319
- if (error) {
320
- NSLog(
321
- @"NotifeeCoreExtensionHelper: Failed to create attachment with URL: %@, error %@",
322
- localURL, error);
323
- completionHandler(attachment);
324
- return;
325
- }
326
- completionHandler(attachment);
327
- }] resume];
478
+ [[session downloadTaskWithURL:attachmentURL
479
+ completionHandler:^(NSURL *temporaryFileLocation, NSURLResponse *response,
480
+ NSError *error) {
481
+ if (error != nil) {
482
+ NSLog(@"NotifeeCoreExtensionHelper: An exception occurred while "
483
+ @"attempting to download "
484
+ @"image with URL %@: "
485
+ @"%@",
486
+ attachmentURL, error);
487
+ completionHandler(attachment);
488
+ return;
489
+ }
490
+
491
+ NSFileManager *fileManager = [NSFileManager defaultManager];
492
+ NSString *fileExtension = [self fileExtensionForResponse:response];
493
+ NSURL *localURL =
494
+ [NSURL fileURLWithPath:[temporaryFileLocation.path
495
+ stringByAppendingString:fileExtension]];
496
+ [fileManager moveItemAtURL:temporaryFileLocation toURL:localURL error:&error];
497
+ if (error) {
498
+ NSLog(@"NotifeeCoreExtensionHelper: Failed to move the image "
499
+ @"file to local location: "
500
+ @"%@, error %@",
501
+ localURL, error);
502
+ completionHandler(attachment);
503
+ return;
504
+ }
505
+
506
+ attachment = [UNNotificationAttachment
507
+ attachmentWithIdentifier:attachmentIdentifier
508
+ URL:localURL
509
+ options:[NotifeeCoreUtil
510
+ attachmentOptionsFromDictionary:attachmentDict]
511
+ error:&error];
512
+ if (error) {
513
+ NSLog(@"NotifeeCoreExtensionHelper: Failed to create attachment "
514
+ @"with URL: %@, error %@",
515
+ localURL, error);
516
+ completionHandler(attachment);
517
+ return;
518
+ }
519
+ completionHandler(attachment);
520
+ }] resume];
328
521
  } @catch (NSException *exception) {
329
- NSLog(@"NotifeeCoreExtensionHelper: Failed to create attachment: %@, error %@", attachmentDict,
330
- exception.reason);
522
+ NSLog(@"NotifeeCoreExtensionHelper: Failed to create attachment: %@, error "
523
+ @"%@",
524
+ attachmentDict, exception.reason);
331
525
  completionHandler(nil);
332
526
  }
333
527
  }