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

Remove Glide.get() calls from requests

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