提交 fe7154fc 编写于 作者: S Sam Judd

Remove Glide.get() calls from requests

上级 785dc5ee
......@@ -12,6 +12,7 @@ import com.bumptech.glide.load.data.bitmap.CenterCrop;
import com.bumptech.glide.load.data.bitmap.Downsampler;
import com.bumptech.glide.load.data.bitmap.FitCenter;
import com.bumptech.glide.load.data.bitmap.StreamBitmapDecoder;
import com.bumptech.glide.load.engine.Engine;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.provider.LoadProvider;
import com.bumptech.glide.request.bitmap.RequestListener;
......@@ -35,8 +36,8 @@ public class BitmapRequestBuilder<ModelType> extends GenericRequestBuilder<Model
BitmapRequestBuilder(Context context, ModelType model,
LoadProvider<ModelType, InputStream, Bitmap> streamLoadProvider,
LoadProvider<ModelType, ParcelFileDescriptor, Bitmap> fileDescriptorLoadProvider,
BitmapPool bitmapPool, ImageViewTargetFactory factory) {
super(context, model, streamLoadProvider, fileDescriptorLoadProvider, Bitmap.class, factory);
BitmapPool bitmapPool, ImageViewTargetFactory factory, Engine engine) {
super(context, model, streamLoadProvider, fileDescriptorLoadProvider, Bitmap.class, factory, engine);
this.bitmapPool = bitmapPool;
}
......@@ -139,7 +140,7 @@ public class BitmapRequestBuilder<ModelType> extends GenericRequestBuilder<Model
* @return This RequestBuilder
*/
public BitmapRequestBuilder<ModelType> centerCrop() {
return transform(new CenterCrop(Glide.get(context).getBitmapPool()));
return transform(new CenterCrop(bitmapPool));
}
/**
......@@ -148,7 +149,7 @@ public class BitmapRequestBuilder<ModelType> extends GenericRequestBuilder<Model
* @return This RequestBuilder
*/
public BitmapRequestBuilder<ModelType> fitCenter() {
return transform(new FitCenter(Glide.get(context).getBitmapPool()));
return transform(new FitCenter(bitmapPool));
}
@Override
......
......@@ -12,6 +12,7 @@ import com.bumptech.glide.load.Transformation;
import com.bumptech.glide.load.data.bitmap.BitmapDecoder;
import com.bumptech.glide.load.data.bitmap.Downsampler;
import com.bumptech.glide.load.data.bitmap.VideoBitmapDecoder;
import com.bumptech.glide.load.engine.Engine;
import com.bumptech.glide.load.model.ModelLoader;
import com.bumptech.glide.provider.ChildLoadProvider;
import com.bumptech.glide.provider.LoadProvider;
......@@ -48,6 +49,7 @@ public class GenericRequestBuilder<ModelType, ImageDataType, VideoDataType, Reso
private final ChildLoadProvider<ModelType, VideoDataType, ResourceType> videoLoadProvider;
private final Class<ResourceType> resourceClass;
private final ImageViewTargetFactory viewTargetFactory;
private final Engine engine;
private int animationId;
private Animation animation;
private int placeholderId;
......@@ -63,9 +65,11 @@ public class GenericRequestBuilder<ModelType, ImageDataType, VideoDataType, Reso
public GenericRequestBuilder(Context context, ModelType model,
LoadProvider<ModelType, ImageDataType, ResourceType> imageLoadProvider,
LoadProvider<ModelType, VideoDataType, ResourceType> videoLoadProvider,
Class<ResourceType> resourceClass, ImageViewTargetFactory viewTargetFactory) {
Class<ResourceType> resourceClass, ImageViewTargetFactory viewTargetFactory,
Engine engine) {
this.resourceClass = resourceClass;
this.viewTargetFactory = viewTargetFactory;
this.engine = engine;
this.imageLoadProvider = imageLoadProvider != null ?
new ChildLoadProvider<ModelType, ImageDataType, ResourceType>(imageLoadProvider) : null;
this.videoLoadProvider = videoLoadProvider != null ?
......@@ -430,7 +434,7 @@ public class GenericRequestBuilder<ModelType, ImageDataType, VideoDataType, Reso
RequestCoordinator requestCoordinator) {
return new GenericRequest<ModelType, Z, ResourceType>(loadProvider, model, context, priority, target,
sizeMultiplier, placeholderDrawable, placeholderId, errorPlaceholder, errorId, requestListener,
animationId, animation, requestCoordinator, Glide.get(context).getEngine(), getFinalTransformation(),
animationId, animation, requestCoordinator, engine, getFinalTransformation(),
resourceClass);
}
......
......@@ -167,14 +167,6 @@ public class Glide {
register(GlideUrl.class, InputStream.class, new VolleyUrlLoader.Factory(requestQueue));
}
Engine getEngine() {
return engine;
}
BitmapPool getBitmapPool() {
return bitmapPool;
}
private GenericLoaderFactory getLoaderFactory() {
return loaderFactory;
}
......@@ -396,8 +388,8 @@ public class Glide {
*/
public static ModelRequest with(Context context) {
Glide glide = Glide.get(context);
return new ModelRequest(context, glide.defaultStreamProvider,
glide.defaultFileDescriptorProvider, glide.bitmapPool, glide.factory);
return new ModelRequest(context, glide.defaultStreamProvider, glide.defaultFileDescriptorProvider,
glide.bitmapPool, glide.factory, glide.engine);
}
/**
......@@ -409,15 +401,17 @@ public class Glide {
private final DataLoadProvider<ParcelFileDescriptor, Bitmap> fileDescriptorDataProvider;
private BitmapPool bitmapPool;
private ImageViewTargetFactory factory;
private Engine engine;
private ModelRequest(Context context, DataLoadProvider<InputStream, Bitmap> streamDataProvider,
DataLoadProvider<ParcelFileDescriptor, Bitmap> fileDescriptorDataProvider,
BitmapPool bitmapPool, ImageViewTargetFactory factory) {
BitmapPool bitmapPool, ImageViewTargetFactory factory, Engine engine) {
this.context = context;
this.streamDataProvider = streamDataProvider;
this.fileDescriptorDataProvider = fileDescriptorDataProvider;
this.bitmapPool = bitmapPool;
this.factory = factory;
this.engine = engine;
}
/**
......@@ -429,7 +423,7 @@ public class Glide {
* @return A new {@link ImageModelRequest}.
*/
public <T> ImageModelRequest<T> using(final StreamModelLoader<T> modelLoader) {
return new ImageModelRequest<T>(context, modelLoader, streamDataProvider, bitmapPool, factory);
return new ImageModelRequest<T>(context, modelLoader, streamDataProvider, bitmapPool, factory, engine);
}
/**
......@@ -439,7 +433,7 @@ public class Glide {
* @return A new {@link ImageModelRequest}.
*/
public ImageModelRequest<byte[]> using(StreamByteArrayLoader modelLoader) {
return new ImageModelRequest<byte[]>(context, modelLoader, streamDataProvider, bitmapPool, factory);
return new ImageModelRequest<byte[]>(context, modelLoader, streamDataProvider, bitmapPool, factory, engine);
}
/**
......@@ -451,7 +445,8 @@ public class Glide {
* @return A new {@link VideoModelRequest}.
*/
public <T> VideoModelRequest<T> using(final FileDescriptorModelLoader<T> modelLoader) {
return new VideoModelRequest<T>(context, modelLoader, fileDescriptorDataProvider, bitmapPool, factory);
return new VideoModelRequest<T>(context, modelLoader, fileDescriptorDataProvider, bitmapPool, factory,
engine);
}
/**
......@@ -565,7 +560,7 @@ public class Glide {
LoadProvider<byte[], InputStream, Bitmap> loadProvider =
new FixedLoadProvider<byte[], InputStream, Bitmap>(loader, streamDataProvider);
return new BitmapRequestBuilder<byte[]>(context, model, loadProvider, null, bitmapPool, factory);
return new BitmapRequestBuilder<byte[]>(context, model, loadProvider, null, bitmapPool, factory, engine);
}
/**
......@@ -625,7 +620,7 @@ public class Glide {
fileDescriptorDataProvider);
}
return new BitmapRequestBuilder<T>(context, model, streamLoadProvider, fileDescriptorLoadProvider,
bitmapPool, factory);
bitmapPool, factory, engine);
}
}
......@@ -641,21 +636,23 @@ public class Glide {
private DataLoadProvider<ParcelFileDescriptor, Bitmap> dataLoadProvider;
private BitmapPool bitmapPool;
private ImageViewTargetFactory factory;
private Engine engine;
private VideoModelRequest(Context context, ModelLoader<T, ParcelFileDescriptor> loader,
DataLoadProvider<ParcelFileDescriptor, Bitmap> dataLoadProvider, BitmapPool bitmapPool,
ImageViewTargetFactory factory) {
ImageViewTargetFactory factory, Engine engine) {
this.context = context;
this.loader = loader;
this.dataLoadProvider = dataLoadProvider;
this.bitmapPool = bitmapPool;
this.factory = factory;
this.engine = engine;
}
public BitmapRequestBuilder<T> loadFromVideo(T model) {
return new BitmapRequestBuilder<T>(context, model, null,
new FixedLoadProvider<T, ParcelFileDescriptor, Bitmap>(loader, dataLoadProvider), bitmapPool,
factory);
factory, engine);
}
}
......@@ -671,20 +668,23 @@ public class Glide {
private DataLoadProvider<InputStream, Bitmap> dataLoadProvider;
private BitmapPool bitmapPool;
private ImageViewTargetFactory factory;
private Engine engine;
private ImageModelRequest(Context context, ModelLoader<T, InputStream> loader,
DataLoadProvider<InputStream, Bitmap> dataLoadProvider, BitmapPool bitmapPool,
ImageViewTargetFactory factory) {
ImageViewTargetFactory factory, Engine engine) {
this.context = context;
this.loader = loader;
this.dataLoadProvider = dataLoadProvider;
this.bitmapPool = bitmapPool;
this.factory = factory;
this.engine = engine;
}
public BitmapRequestBuilder<T> load(T model) {
return new BitmapRequestBuilder<T>(context, model,
new FixedLoadProvider<T, InputStream, Bitmap>(loader, dataLoadProvider), null, bitmapPool, factory);
new FixedLoadProvider<T, InputStream, Bitmap>(loader, dataLoadProvider), null, bitmapPool, factory,
engine);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册