@@ -80,10 +80,7 @@ - (dispatch_queue_t)methodQueue
80
80
center.nowPlayingInfo = [self update: mediaDict with: details andSetDefaults: false ];
81
81
82
82
NSString *artworkUrl = [self getArtworkUrl: [originalDetails objectForKey: @" artwork" ]];
83
- if (![artworkUrl isEqualToString: self .artworkUrl] && artworkUrl != nil ) {
84
- self.artworkUrl = artworkUrl;
85
- [self updateArtworkIfNeeded: artworkUrl];
86
- }
83
+ [self updateArtworkIfNeeded: artworkUrl];
87
84
}
88
85
89
86
@@ -285,54 +282,66 @@ - (void)sendEventWithValue:(NSString*)event withValue:(NSString*)value{
285
282
286
283
- (void )updateArtworkIfNeeded : (id )artworkUrl
287
284
{
288
- if (artworkUrl != nil ) {
289
- self.artworkUrl = artworkUrl;
290
-
291
- // Custom handling of artwork in another thread, will be loaded async
292
- dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0 ), ^{
293
- UIImage *image = nil ;
294
-
295
- // check whether artwork path is present
296
- if (![artworkUrl isEqual: @" " ]) {
297
- // artwork is url download from the interwebs
298
- if ([artworkUrl hasPrefix: @" http://" ] || [artworkUrl hasPrefix: @" https://" ]) {
299
- NSURL *imageURL = [NSURL URLWithString: artworkUrl];
300
- NSData *imageData = [NSData dataWithContentsOfURL: imageURL];
301
- image = [UIImage imageWithData: imageData];
302
- } else {
303
- NSString *localArtworkUrl = [artworkUrl stringByReplacingOccurrencesOfString: @" file://" withString: @" " ];
304
- BOOL fileExists = [[NSFileManager defaultManager ] fileExistsAtPath: localArtworkUrl];
305
- if (fileExists) {
306
- image = [UIImage imageNamed: localArtworkUrl];
307
- }
308
- }
309
- }
285
+ if ( artworkUrl == nil ) {
286
+ return ;
287
+ }
310
288
311
- // Check if image was available otherwise don't do anything
312
- if (image == nil ) {
313
- return ;
289
+ MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter ];
290
+ if ([artworkUrl isEqualToString: self .artworkUrl] && [center.nowPlayingInfo objectForKey: MPMediaItemPropertyArtwork] != nil ) {
291
+ return ;
292
+ }
293
+
294
+ self.artworkUrl = artworkUrl;
295
+
296
+ // Custom handling of artwork in another thread, will be loaded async
297
+ dispatch_async (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0 ), ^{
298
+ UIImage *image = nil ;
299
+
300
+ // check whether artwork path is present
301
+ if ([artworkUrl isEqual: @" " ]) {
302
+ return ;
303
+ }
304
+
305
+ // artwork is url download from the interwebs
306
+ if ([artworkUrl hasPrefix: @" http://" ] || [artworkUrl hasPrefix: @" https://" ]) {
307
+ NSURL *imageURL = [NSURL URLWithString: artworkUrl];
308
+ NSData *imageData = [NSData dataWithContentsOfURL: imageURL];
309
+ image = [UIImage imageWithData: imageData];
310
+ } else {
311
+ NSString *localArtworkUrl = [artworkUrl stringByReplacingOccurrencesOfString: @" file://" withString: @" " ];
312
+ BOOL fileExists = [[NSFileManager defaultManager ] fileExistsAtPath: localArtworkUrl];
313
+ if (fileExists) {
314
+ image = [UIImage imageNamed: localArtworkUrl];
314
315
}
316
+ }
317
+
318
+ // Check if image was available otherwise don't do anything
319
+ if (image == nil ) {
320
+ return ;
321
+ }
315
322
316
- // check whether image is loaded
317
- CGImageRef cgref = [image CGImage ];
318
- CIImage *cim = [image CIImage ];
323
+ // check whether image is loaded
324
+ CGImageRef cgref = [image CGImage ];
325
+ CIImage *cim = [image CIImage ];
319
326
320
- if (cim != nil || cgref != NULL ) {
327
+ if (cim == nil && cgref == NULL ) {
328
+ return ;
329
+ }
321
330
322
- dispatch_async (dispatch_get_main_queue (), ^{
331
+ dispatch_async (dispatch_get_main_queue (), ^{
323
332
324
- // Check if URL wasn't changed in the meantime
325
- if ([artworkUrl isEqual: self .artworkUrl]) {
326
- MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter ];
327
- MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc ] initWithImage: image];
328
- NSMutableDictionary *mediaDict = (center.nowPlayingInfo != nil ) ? [[NSMutableDictionary alloc ] initWithDictionary: center.nowPlayingInfo] : [NSMutableDictionary dictionary ];
329
- [mediaDict setValue: artwork forKey: MPMediaItemPropertyArtwork];
330
- center.nowPlayingInfo = mediaDict;
331
- }
332
- });
333
+ // Check if URL wasn't changed in the meantime
334
+ if (![artworkUrl isEqual: self .artworkUrl]) {
335
+ return ;
333
336
}
337
+
338
+ MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter ];
339
+ MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc ] initWithImage: image];
340
+ NSMutableDictionary *mediaDict = (center.nowPlayingInfo != nil ) ? [[NSMutableDictionary alloc ] initWithDictionary: center.nowPlayingInfo] : [NSMutableDictionary dictionary ];
341
+ [mediaDict setValue: artwork forKey: MPMediaItemPropertyArtwork];
342
+ center.nowPlayingInfo = mediaDict;
334
343
});
335
- }
344
+ });
336
345
}
337
346
338
347
- (void )audioHardwareRouteChanged : (NSNotification *)notification {
0 commit comments