diff --git a/LeadKit/LeadKit/Classes/ImageLoader/ImageLoader.swift b/LeadKit/LeadKit/Classes/ImageLoader/ImageLoader.swift index a953fb26..214b2160 100644 --- a/LeadKit/LeadKit/Classes/ImageLoader/ImageLoader.swift +++ b/LeadKit/LeadKit/Classes/ImageLoader/ImageLoader.swift @@ -11,8 +11,8 @@ import RxSwift public class ImageLoader { private let imageSource: ImageSource + private let imageCache: MemoryStore - private let processedImageCache = MemoryStore() private var loadingObservablesCache = [String : Observable]() private let loadingSyncLock = Sync.Lock() @@ -31,13 +31,13 @@ public class ImageLoader { return Observable.deferred({ () -> Observable in let operationCachingKey = operation._cachingKey - if let cachedImage = self.processedImageCache.loadData(key: operationCachingKey) { + if let cachedImage = self.imageCache.loadData(key: operationCachingKey) { return Observable.just(cachedImage) } else { return operation._imageSource .observeOnBackgroundScheduler() .do(onNext: { (image) in - self.processedImageCache.storeData(key: operationCachingKey, data: image) + self.imageCache.storeData(key: operationCachingKey, data: image) }) } }) @@ -70,7 +70,9 @@ public class ImageLoader { } } - public init(imageSource: TSource) where TSource.KeyType == TKey { + public init(imageSource: TSource, + imageCache: MemoryStore = MemoryStore()) where TSource.KeyType == TKey { self.imageSource = imageSource.asImageSource() + self.imageCache = imageCache } }