Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 72 lines (53 sloc) 1.698 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
//
// CLCGLayer.m
// Goodreads
//
// Created by Ettore Pasquini on 7/5/12.
// Copyright (c) 2012 Goodreads. All rights reserved.
//


#import "ASIHTTPRequest.h"

#import "clcg_macros.h"
#import "clcg_str_utils.h"
#import "clcg_device_utils.h"

#import "CLCGLayer.h"


@implementation CLCGLayer


-(void)dealloc
{
  [self cleanupLayer];
  [super dealloc];
}


-(void)cleanupLayer
{
  [self setContents:nil];
  mCache = nil;

  [mReq clearDelegatesAndCancel];
  CLCG_REL(mReq);
}


-(void)loadImageForURL:(NSString*)normalurl
             retinaURL:(NSString*)retinaurl
                 cache:(NSCache*)cache
{
  if (mReq) {
    [mReq cancel];
    CLCG_REL(mReq);
  }
  
  mCache = cache;

  // don't use the built-in CLCGImageLoader cache if we're using an external cache
  mReq = [CLCGImageLoader loadImageForURL:normalurl
                                retinaURL:retinaurl
                                 useCache:(mCache == nil)
                                    block:^(UIImage *img, int http_status) {
                                      if (img) {
                                        [mCache setObject:img
                                                   forKey:[[mReq originalURL] absoluteString]];
                                        [self setContents:(id)[img CGImage]];
                                      } else {
                                        CLCG_P(@"Error loading image. HTTP status=%d",
                                               http_status);
                                      }
                                      CLCG_REL(mReq);
                                    }];
  
  // will release in the block callback
  [mReq retain];
}


@end
Something went wrong with that request. Please try again.