@@ -509,37 +509,29 @@ - (void)loadImage:(std::string const &)urlStr
509509 url = [NSURL URLWithString: nSUrlStr relativeToURL: _hostConfig.baseURL];
510510 }
511511
512- NSObject <ACOIResourceResolver> *imageResourceResolver = [_hostConfig getResourceResolverForScheme: [url scheme ]];
513- ImageLoadBlock imageloadblock = nil ;
514- if (!imageResourceResolver || ![imageResourceResolver respondsToSelector: @selector (resolveImageResource: )]) {
515- imageloadblock = ^(NSURL *url) {
516- // download image
517- UIImage *img = nil ;
518- if ([url.scheme isEqualToString: @" data" ]) {
519- NSString *absoluteUri = url.absoluteString ;
520- std::string dataUri = AdaptiveCards::AdaptiveBase64Util::ExtractDataFromUri (std::string ([absoluteUri UTF8String ]));
521- std::vector<char > decodedDataUri = AdaptiveCards::AdaptiveBase64Util::Decode (dataUri);
522- NSData *decodedBase64 = [NSData dataWithBytes: decodedDataUri.data () length: decodedDataUri.size ()];
523- img = [UIImage imageWithData: decodedBase64];
524- } else {
525- img = [UIImage imageWithData: [NSData dataWithContentsOfURL: url]];
526- }
527- return img;
528- };
529- }
512+ ImageLoadBlock imageloadblock = ^(NSURL *url) {
513+ // download image
514+ UIImage *img = nil ;
515+ if ([url.scheme isEqualToString: @" data" ]) {
516+ NSString *absoluteUri = url.absoluteString ;
517+ std::string dataUri = AdaptiveCards::AdaptiveBase64Util::ExtractDataFromUri (std::string ([absoluteUri UTF8String ]));
518+ std::vector<char > decodedDataUri = AdaptiveCards::AdaptiveBase64Util::Decode (dataUri);
519+ NSData *decodedBase64 = [NSData dataWithBytes: decodedDataUri.data () length: decodedDataUri.size ()];
520+ img = [UIImage imageWithData: decodedBase64];
521+ } else {
522+ img = [UIImage imageWithData: [NSData dataWithContentsOfURL: url]];
523+ }
524+ return img;
525+ };
530526
531527 dispatch_group_async (_async_tasks_group, _global_queue,
532528 ^{
533- UIImage *img = nil ;
534- if (imageloadblock ) {
535- img = imageloadblock (url);
536- } else if (imageResourceResolver) {
537- img = [imageResourceResolver resolveImageResource: url] ;
529+ UIImage *img = (imageloadblock) ? imageloadblock (url) : nil ;
530+ if (img ) {
531+ dispatch_sync (self-> _serial_queue , ^{
532+ self-> _imageViewMap [nSUrlStr] = img;
533+ }) ;
538534 }
539-
540- dispatch_sync (self->_serial_queue , ^{
541- self->_imageViewMap [nSUrlStr] = img;
542- });
543535 });
544536}
545537
@@ -727,8 +719,6 @@ - (void)loadImageAccordingToResourceResolverIFForBaseAction:(std::shared_ptr<Bas
727719 NSNumber *number = nil ;
728720 NSString *nSUrlStr = nil ;
729721
730- _numberOfSubscribers++;
731-
732722 number = [NSNumber numberWithUnsignedLongLong: (unsigned long long )elem.get ()];
733723 nSUrlStr = [NSString stringWithCString: elem->GetIconUrl ().c_str () encoding: [NSString defaultCStringEncoding ]];
734724 if (!key) {
@@ -740,6 +730,7 @@ - (void)loadImageAccordingToResourceResolverIFForBaseAction:(std::shared_ptr<Bas
740730 if (ACOImageViewIF == [_hostConfig getResolverIFType: [url scheme ]]) {
741731 if (observerAction) {
742732 observerAction (imageResourceResolver, key, elem, url, self);
733+ _numberOfSubscribers++;
743734 }
744735 } else {
745736 [self loadImage: [nSUrlStr cStringUsingEncoding: NSUTF8StringEncoding]];
0 commit comments