1package com.bumptech.glide.load.engine; 2 3import android.os.Handler; 4import com.bumptech.glide.load.CacheLoader; 5import com.bumptech.glide.Priority; 6import com.bumptech.glide.load.Encoder; 7import com.bumptech.glide.load.ResourceDecoder; 8import com.bumptech.glide.load.ResourceEncoder; 9import com.bumptech.glide.load.Transformation; 10import com.bumptech.glide.load.data.DataFetcher; 11import com.bumptech.glide.load.engine.cache.DiskCache; 12import com.bumptech.glide.load.resource.transcode.ResourceTranscoder; 13 14import java.io.InputStream; 15import java.util.concurrent.ExecutorService; 16 17class DefaultResourceRunnerFactory implements ResourceRunnerFactory { 18 private final CacheLoader cacheLoader; 19 private DiskCache diskCache; 20 private Handler mainHandler; 21 private ExecutorService diskCacheService; 22 private ExecutorService service; 23 24 public DefaultResourceRunnerFactory(DiskCache diskCache, Handler mainHandler, 25 ExecutorService diskCacheService, ExecutorService resizeService) { 26 this.diskCache = diskCache; 27 this.mainHandler = mainHandler; 28 this.diskCacheService = diskCacheService; 29 this.service = resizeService; 30 cacheLoader = new CacheLoader(diskCache); 31 } 32 33 @Override 34 public <T, Z, R> ResourceRunner<Z, R> build(EngineKey key, int width, int height, 35 ResourceDecoder<InputStream, Z> cacheDecoder, DataFetcher<T> fetcher, boolean cacheSource, 36 Encoder<T> sourceEncoder, ResourceDecoder<T, Z> decoder, Transformation<Z> transformation, 37 ResourceEncoder<Z> encoder, ResourceTranscoder<Z, R> transcoder, Priority priority, 38 boolean isMemoryCacheable, EngineJobListener listener) { 39 40 EngineJob engineJob = new EngineJob(key, mainHandler, isMemoryCacheable, listener); 41 42 SourceResourceRunner<T, Z, R> sourceRunner = new SourceResourceRunner<T, Z, R>(key, width, height, cacheLoader, 43 cacheDecoder, fetcher, cacheSource, sourceEncoder, decoder, transformation, encoder, transcoder, 44 diskCache, priority, engineJob); 45 46 return new ResourceRunner<Z, R>(key, width, height, cacheLoader, cacheDecoder, transformation, 47 transcoder, sourceRunner, diskCacheService, service, engineJob, priority); 48 } 49} 50