提交 44e0516e 编写于 作者: S Sam Judd

Generify BitmapRequest and GenericRequestBuilder

上级 ba414a3e
......@@ -55,10 +55,10 @@ public class ListPreloaderTest {
}
@Override
protected RequestBuilder getRequestBuilder(Object item) {
protected BitmapRequestBuilder getRequestBuilder(Object item) {
assertEquals(objects.get(expectedPosition), item);
expectedPosition++;
return mock(RequestBuilder.class);
return mock(BitmapRequestBuilder.class);
}
};
......@@ -110,10 +110,10 @@ public class ListPreloaderTest {
}
@Override
protected RequestBuilder getRequestBuilder(Object item) {
protected BitmapRequestBuilder getRequestBuilder(Object item) {
assertEquals(objects.get(expectedPosition), item);
expectedPosition--;
return mock(RequestBuilder.class);
return mock(BitmapRequestBuilder.class);
}
};
......@@ -221,7 +221,7 @@ public class ListPreloaderTest {
}
@Override
protected RequestBuilder getRequestBuilder(Object item) {
protected BitmapRequestBuilder getRequestBuilder(Object item) {
loadedObjects.add(item);
return super.getRequestBuilder(item);
}
......@@ -254,8 +254,8 @@ public class ListPreloaderTest {
}
@Override
protected RequestBuilder getRequestBuilder(Object item) {
return mock(RequestBuilder.class);
protected BitmapRequestBuilder getRequestBuilder(Object item) {
return mock(BitmapRequestBuilder.class);
}
}
}
......@@ -2,7 +2,6 @@ package com.bumptech.glide.request;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
......@@ -16,7 +15,7 @@ import com.bumptech.glide.load.engine.Engine;
import com.bumptech.glide.load.model.ModelLoader;
import com.bumptech.glide.load.resource.ResourceFetcher;
import com.bumptech.glide.provider.LoadProvider;
import com.bumptech.glide.request.bitmap.BitmapRequest;
import com.bumptech.glide.request.bitmap.GenericRequest;
import com.bumptech.glide.request.target.Target;
import org.junit.Before;
import org.junit.Test;
......@@ -39,7 +38,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(RobolectricTestRunner.class)
public class BitmapRequestTest {
public class GenericRequestTest {
private RequestHarness harness;
@SuppressWarnings("unchecked")
......@@ -55,15 +54,15 @@ public class BitmapRequestTest {
Drawable placeholderDrawable = null;
int errorResourceId = 0;
Drawable errorDrawable = null;
LoadProvider<Object, Object, Bitmap> loadProvider = mock(LoadProvider.class);
LoadProvider<Object, Object, Object> loadProvider = mock(LoadProvider.class);
public RequestHarness() {
ModelLoader<Object, Object> modelLoader = mock(ModelLoader.class);
when(loadProvider.getModelLoader()).thenReturn(modelLoader);
}
public BitmapRequest<Object, Object> getRequest() {
return new BitmapRequest<Object, Object>(loadProvider, model, context, priority, target, 1f,
public GenericRequest<Object, Object, Object> getRequest() {
return new GenericRequest<Object, Object, Object>(loadProvider, model, context, priority, target, 1f,
placeholderDrawable, placeholderResourceId, errorDrawable, errorResourceId, null, 0, null,
requestCoordinator, engine, mock(Transformation.class));
}
......@@ -76,14 +75,14 @@ public class BitmapRequestTest {
@Test
public void testIsNotCompleteBeforeReceivingResource() {
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
assertFalse(request.isComplete());
}
@Test
public void testIsCompleteAfterReceivingResource() {
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onResourceReady(harness.resource);
......@@ -96,14 +95,14 @@ public class BitmapRequestTest {
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Request request = (Request) invocation.getArguments()[0];
com.bumptech.glide.request.Request request = (com.bumptech.glide.request.Request) invocation.getArguments()[0];
assertFalse(request.isComplete());
return true;
}
}).when(requestCoordinator).canSetImage(any(Request.class));
}).when(requestCoordinator).canSetImage(any(com.bumptech.glide.request.Request.class));
harness.requestCoordinator = requestCoordinator;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onResourceReady(harness.resource);
......@@ -112,14 +111,14 @@ public class BitmapRequestTest {
@Test
public void testIsNotFailedWithoutException() {
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
assertFalse(request.isFailed());
}
@Test
public void testIsFailedAfterException() {
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onException(new Exception("test"));
assertTrue(request.isFailed());
......@@ -129,7 +128,7 @@ public class BitmapRequestTest {
public void testEngineLoadPassedCorrectMetadata() {
Priority expected = Priority.HIGH;
harness.priority = expected;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onSizeReady(100, 100);
......@@ -146,7 +145,7 @@ public class BitmapRequestTest {
any(ResourceFetcher.class), any(ResourceDecoder.class), any(Transformation.class),
any(ResourceEncoder.class), any(Priority.class), any(ResourceCallback.class))).thenReturn(loadStatus);
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onSizeReady(100, 100);
request.cancel();
......@@ -156,7 +155,7 @@ public class BitmapRequestTest {
@Test
public void testResourceIsRecycledOnClear() {
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onResourceReady(harness.resource);
request.clear();
......@@ -175,7 +174,7 @@ public class BitmapRequestTest {
harness.context = context;
harness.placeholderResourceId = expectedId;
harness.target = target;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.run();
assertEquals(expected, target.currentPlaceholder);
......@@ -189,7 +188,7 @@ public class BitmapRequestTest {
harness.placeholderDrawable = expected;
harness.target = target;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.run();
assertEquals(expected, target.currentPlaceholder);
......@@ -206,7 +205,7 @@ public class BitmapRequestTest {
harness.context = context;
harness.errorResourceId = expectedId;
harness.target = target;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onException(null);
......@@ -221,7 +220,7 @@ public class BitmapRequestTest {
harness.errorDrawable = expected;
harness.target = target;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.onException(null);
......@@ -237,7 +236,7 @@ public class BitmapRequestTest {
harness.placeholderDrawable = placeholder;
harness.target = target;
harness.model = null;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.run();
......@@ -255,7 +254,7 @@ public class BitmapRequestTest {
harness.errorDrawable = errorPlaceholder;
harness.target = target;
harness.model = null;
BitmapRequest request = harness.getRequest();
GenericRequest request = harness.getRequest();
request.run();
......@@ -295,7 +294,7 @@ public class BitmapRequestTest {
}
@Override
public void setRequest(Request request) {
public void setRequest(com.bumptech.glide.request.Request request) {
}
@Override
......
......@@ -8,7 +8,9 @@ import android.view.animation.Animation;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.ResourceDecoder;
import com.bumptech.glide.load.Transformation;
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.bitmap_recycle.BitmapPool;
import com.bumptech.glide.provider.LoadProvider;
......@@ -23,12 +25,14 @@ import java.io.InputStream;
* @param <ModelType> The type of model that will be loaded into the target.
*/
@SuppressWarnings("unused") //public api
public class RequestBuilder<ModelType> extends GenericRequestBuilder<ModelType, InputStream, ParcelFileDescriptor> {
public class BitmapRequestBuilder<ModelType> extends GenericRequestBuilder<ModelType, InputStream, ParcelFileDescriptor,
Bitmap> {
private final BitmapPool bitmapPool;
private Downsampler downsampler = Downsampler.AT_LEAST;
private DecodeFormat decodeFormat = DecodeFormat.PREFER_RGB_565;
RequestBuilder(Context context, ModelType model, LoadProvider<ModelType, InputStream, Bitmap> streamLoadProvider,
BitmapRequestBuilder(Context context, ModelType model,
LoadProvider<ModelType, InputStream, Bitmap> streamLoadProvider,
LoadProvider<ModelType, ParcelFileDescriptor, Bitmap> fileDescriptorLoadProvider, BitmapPool bitmapPool) {
super(context, model, streamLoadProvider, fileDescriptorLoadProvider);
this.bitmapPool = bitmapPool;
......@@ -41,7 +45,7 @@ public class RequestBuilder<ModelType> extends GenericRequestBuilder<ModelType,
*
* @return This RequestBuilder
*/
public RequestBuilder<ModelType> approximate() {
public BitmapRequestBuilder<ModelType> approximate() {
return downsample(Downsampler.AT_LEAST);
}
......@@ -52,7 +56,7 @@ public class RequestBuilder<ModelType> extends GenericRequestBuilder<ModelType,
*
* @return This RequestBuilder
*/
public RequestBuilder<ModelType> asIs() {
public BitmapRequestBuilder<ModelType> asIs() {
return downsample(Downsampler.NONE);
}
......@@ -65,37 +69,37 @@ public class RequestBuilder<ModelType> extends GenericRequestBuilder<ModelType,
* @param downsampler The downsampler
* @return This RequestBuilder
*/
private RequestBuilder<ModelType> downsample(Downsampler downsampler) {
private BitmapRequestBuilder<ModelType> downsample(Downsampler downsampler) {
this.downsampler = downsampler;
super.imageDecoder(new StreamBitmapDecoder(downsampler, bitmapPool, decodeFormat));
return this;
}
@Override
public RequestBuilder<ModelType> thumbnail(float sizeMultiplier) {
public BitmapRequestBuilder<ModelType> thumbnail(float sizeMultiplier) {
super.thumbnail(sizeMultiplier);
return this;
}
public RequestBuilder<ModelType> thumbnail(RequestBuilder<ModelType> thumbnailRequest) {
public BitmapRequestBuilder<ModelType> thumbnail(BitmapRequestBuilder<ModelType> thumbnailRequest) {
super.thumbnail(thumbnailRequest);
return this;
}
@Override
public RequestBuilder<ModelType> sizeMultiplier(float sizeMultiplier) {
public BitmapRequestBuilder<ModelType> sizeMultiplier(float sizeMultiplier) {
super.sizeMultiplier(sizeMultiplier);
return this;
}
@Override
public RequestBuilder<ModelType> imageDecoder(ResourceDecoder<InputStream, Bitmap> decoder) {
public BitmapRequestBuilder<ModelType> imageDecoder(ResourceDecoder<InputStream, Bitmap> decoder) {
super.imageDecoder(decoder);
return this;
}
@Override
public RequestBuilder<ModelType> videoDecoder(ResourceDecoder<ParcelFileDescriptor, Bitmap> decoder) {
public BitmapRequestBuilder<ModelType> videoDecoder(ResourceDecoder<ParcelFileDescriptor, Bitmap> decoder) {
super.videoDecoder(decoder);
return this;
}
......@@ -115,74 +119,80 @@ public class RequestBuilder<ModelType> extends GenericRequestBuilder<ModelType,
* @param format The format to use.
* @return This request builder.
*/
public RequestBuilder<ModelType> format(DecodeFormat format) {
public BitmapRequestBuilder<ModelType> format(DecodeFormat format) {
this.decodeFormat = format;
super.imageDecoder(new StreamBitmapDecoder(downsampler, bitmapPool, format));
return this;
}
@Override
public RequestBuilder<ModelType> priority(Priority priority) {
public BitmapRequestBuilder<ModelType> priority(Priority priority) {
super.priority(priority);
return this;
}
@Override
public RequestBuilder<ModelType> centerCrop() {
super.centerCrop();
return this;
/**
* Transform images using {@link CenterCrop}.
*
* @return This RequestBuilder
*/
public BitmapRequestBuilder<ModelType> centerCrop() {
return transform(new CenterCrop(Glide.get(context).getBitmapPool()));
}
@Override
public RequestBuilder<ModelType> fitCenter() {
super.fitCenter();
return this;
/**
* Transform images using {@link FitCenter}.
*
* @return This RequestBuilder
*/
public BitmapRequestBuilder<ModelType> fitCenter() {
return transform(new FitCenter(Glide.get(context).getBitmapPool()));
}
@Override
public RequestBuilder<ModelType> transform(Transformation<Bitmap> transformation) {
public BitmapRequestBuilder<ModelType> transform(Transformation<Bitmap> transformation) {
super.transform(transformation);
return this;
}
@Override
public RequestBuilder<ModelType> animate(int animationId) {
public BitmapRequestBuilder<ModelType> animate(int animationId) {
super.animate(animationId);
return this;
}
@Override
public RequestBuilder<ModelType> animate(Animation animation) {
public BitmapRequestBuilder<ModelType> animate(Animation animation) {
super.animate(animation);
return this;
}
@Override
public RequestBuilder<ModelType> placeholder(int resourceId) {
public BitmapRequestBuilder<ModelType> placeholder(int resourceId) {
super.placeholder(resourceId);
return this;
}
@Override
public RequestBuilder<ModelType> placeholder(Drawable drawable) {
public BitmapRequestBuilder<ModelType> placeholder(Drawable drawable) {
super.placeholder(drawable);
return this;
}
@Override
public RequestBuilder<ModelType> error(int resourceId) {
public BitmapRequestBuilder<ModelType> error(int resourceId) {
super.error(resourceId);
return this;
}
@Override
public RequestBuilder<ModelType> error(Drawable drawable) {
public BitmapRequestBuilder<ModelType> error(Drawable drawable) {
super.error(drawable);
return this;
}
@Override
public RequestBuilder<ModelType> listener(RequestListener<ModelType> requestListener) {
public BitmapRequestBuilder<ModelType> listener(RequestListener<ModelType> requestListener) {
super.listener(requestListener);
return this;
}
......
......@@ -44,7 +44,7 @@ import java.net.URL;
import java.util.UUID;
/**
* A singleton to present a simple static interface for building requests with {@link RequestBuilder} and maintaining
* A singleton to present a simple static interface for building requests with {@link BitmapRequestBuilder} and maintaining
* an {@link Engine}, {@link BitmapPool}, {@link DiskCache} and {@link MemoryCache}.
*
* <p>
......@@ -398,7 +398,7 @@ public class Glide {
}
/**
* A {@link RequestBuilder} builder that returns a request for a model that represents an image.
* A {@link BitmapRequestBuilder} builder that returns a request for a model that represents an image.
*/
public static class ModelRequest {
private final Context context;
......@@ -457,10 +457,10 @@ public class Glide {
*
* @param string The string representing the image. Must be either a path, or a uri handled by
* {@link StreamUriLoader}
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the model
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the model
* into.
*/
public RequestBuilder<String> load(String string) {
public BitmapRequestBuilder<String> load(String string) {
return loadGeneric(string);
}
......@@ -471,10 +471,10 @@ public class Glide {
* @see #using(StreamModelLoader)
*
* @param uri The uri representing the image. Must be a uri handled by {@link StreamUriLoader}
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the model
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the model
* into.
*/
public RequestBuilder<Uri> load(Uri uri) {
public BitmapRequestBuilder<Uri> load(Uri uri) {
return loadGeneric(uri);
}
......@@ -486,10 +486,10 @@ public class Glide {
* @see #using(StreamModelLoader)
*
* @param file The File containing the image
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the model
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the model
* into.
*/
public RequestBuilder<File> load(File file) {
public BitmapRequestBuilder<File> load(File file) {
return loadGeneric(file);
}
......@@ -501,10 +501,10 @@ public class Glide {
* @see #using(StreamModelLoader)
*
* @param resourceId the id of the resource containing the image
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the model
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the model
* into.
*/
public RequestBuilder<Integer> load(Integer resourceId) {
public BitmapRequestBuilder<Integer> load(Integer resourceId) {
return loadGeneric(resourceId);
}
......@@ -514,11 +514,11 @@ public class Glide {
*
* @param model The model to load.
* @param <T> The type of the model to load.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the image
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the image
* into.
*/
@SuppressWarnings("unused")
public <T> RequestBuilder<T> loadFromImage(T model) {
public <T> BitmapRequestBuilder<T> loadFromImage(T model) {
return loadGeneric(model);
}
......@@ -530,10 +530,10 @@ public class Glide {
* @see #using(StreamModelLoader)
*
* @param url The URL representing the image.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the model
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the model
* into.
*/
public RequestBuilder<URL> loadFromImage(URL url) {
public BitmapRequestBuilder<URL> loadFromImage(URL url) {
return loadGeneric(url);
}
......@@ -545,10 +545,10 @@ public class Glide {
* @param model The data to load.
* @param id A unique id that identifies the image represented by the model suitable for use as a cache key
* (url, filepath etc). If there is no suitable id, use {@link #loadFromImage(byte[])} instaed.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the image
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the image
* into.
*/
public RequestBuilder<byte[]> loadFromImage(byte[] model, final String id) {
public BitmapRequestBuilder<byte[]> loadFromImage(byte[] model, final String id) {
StreamByteArrayLoader loader = new StreamByteArrayLoader() {
@Override
public String getId(byte[] model) {
......@@ -559,7 +559,7 @@ public class Glide {
LoadProvider<byte[], InputStream, Bitmap> loadProvider =
new FixedLoadProvider<byte[], InputStream, Bitmap>(loader, streamDataProvider);
return new RequestBuilder<byte[]>(context, model, loadProvider, null, bitmapPool);
return new BitmapRequestBuilder<byte[]>(context, model, loadProvider, null, bitmapPool);
}
/**
......@@ -567,10 +567,10 @@ public class Glide {
* simple id that represents the given data.
*
* @param model the data to load.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the image
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the image
* into.
*/
public RequestBuilder<byte[]> loadFromImage(byte[] model) {
public BitmapRequestBuilder<byte[]> loadFromImage(byte[] model) {
return loadFromImage(model, UUID.randomUUID()
.toString());
}
......@@ -581,11 +581,11 @@ public class Glide {
*
* @param model The model to load.
* @param <T> The type of the model to load.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the image
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the image
* into.
*/
@SuppressWarnings("unused")
public <T> RequestBuilder<T> loadFromVideo(T model) {
public <T> BitmapRequestBuilder<T> loadFromVideo(T model) {
return loadGeneric(model);
}
......@@ -596,14 +596,14 @@ public class Glide {
*
* @param model The model the load.
* @param <T> The type of the model to load.
* @return A {@link RequestBuilder} to set options for the load and ultimately the target to load the image
* @return A {@link BitmapRequestBuilder} to set options for the load and ultimately the target to load the image
* into.
*/
public <T> RequestBuilder<T> load(T model) {
public <T> BitmapRequestBuilder<T> load(T model) {
return loadGeneric(model);
}
private <T> RequestBuilder<T> loadGeneric(T model) {
private <T> BitmapRequestBuilder<T> loadGeneric(T model) {
LoadProvider<T, InputStream, Bitmap> streamLoadProvider = null;
ModelLoader<T, InputStream> streamModelLoader = buildStreamModelLoader(model, context);
if (streamModelLoader != null) {
......@@ -618,7 +618,7 @@ public class Glide {
new FixedLoadProvider<T, ParcelFileDescriptor, Bitmap>(fileDescriptorModelLoader,
fileDescriptorDataProvider);
}
return new RequestBuilder<T>(context, model, streamLoadProvider, fileDescriptorLoadProvider, bitmapPool);
return new BitmapRequestBuilder<T>(context, model, streamLoadProvider, fileDescriptorLoadProvider, bitmapPool);
}
}
......@@ -642,8 +642,8 @@ public class Glide {
this.bitmapPool = bitmapPool;
}
public RequestBuilder<T> loadFromVideo(T model) {
return new RequestBuilder<T>(context, model, null,
public BitmapRequestBuilder<T> loadFromVideo(T model) {
return new BitmapRequestBuilder<T>(context, model, null,
new FixedLoadProvider<T, ParcelFileDescriptor, Bitmap>(loader, dataLoadProvider), bitmapPool);
}
}
......@@ -668,8 +668,8 @@ public class Glide {
this.bitmapPool = bitmapPool;
}
public RequestBuilder<T> load(T model) {
return new RequestBuilder<T>(context, model,
public BitmapRequestBuilder<T> load(T model) {
return new BitmapRequestBuilder<T>(context, model,
new FixedLoadProvider<T, InputStream, Bitmap>(loader, dataLoadProvider), null, bitmapPool);
}
}
......
......@@ -82,9 +82,9 @@ public abstract class ListPreloader<T> implements AbsListView.OnScrollListener {
* target and context will be provided by the preloader.
*
* @param item The model to load.
* @return A non null {@link RequestBuilder}.
* @return A non null {@link BitmapRequestBuilder}.
*/
protected abstract RequestBuilder getRequestBuilder(T item);
protected abstract BitmapRequestBuilder getRequestBuilder(T item);
private void preload(int start, boolean increasing) {
if (isIncreasing != increasing) {
......
package com.bumptech.glide.request.bitmap;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.animation.Animation;
......@@ -23,24 +22,25 @@ import com.bumptech.glide.request.target.Target;
import java.io.InputStream;
/**
* A {@link Request} that loads an {@link Bitmap} into a given {@link Target}.
* A {@link com.bumptech.glide.request.Request} that loads a {@link Resource} into a given {@link Target}.
*
* @param <A> The type of the model that the {@link Bitmap} will be loaded from.
* @param <T> The type of the resource that the {@link Bitmap} will be loaded from.
* @param <A> The type of the model that the resource will be loaded from.
* @param <T> The type of the data that the resource will be loaded from.
* @param <Z> The type of the resource that will be loaded.
*/
public class BitmapRequest<A, T> implements Request, Target.SizeReadyCallback, ResourceCallback<Bitmap> {
private static final String TAG = "BitmapRequest";
public class GenericRequest<A, T, Z> implements Request, Target.SizeReadyCallback, ResourceCallback<Z> {
private static final String TAG = "Request";
private final int placeholderResourceId;
private final int errorResourceId;
private final Context context;
private final Transformation<Bitmap> transformation;
private final LoadProvider<A, T, Bitmap> loadProvider;
private final Transformation<Z> transformation;
private final LoadProvider<A, T, Z> loadProvider;
private final int animationId;
private final RequestCoordinator requestCoordinator;
private final A model;
private Priority priority;
private final Target<Bitmap> target;
private final Target<Z> target;
private final RequestListener<A> requestListener;
private final float sizeMultiplier;
private final Engine engine;
......@@ -50,14 +50,14 @@ public class BitmapRequest<A, T> implements Request, Target.SizeReadyCallback, R
private boolean isCancelled;
private boolean isError;
private boolean loadedFromMemoryCache;
private Resource<Bitmap> resource;
private Resource<Z> resource;
private Engine.LoadStatus loadStatus;
public BitmapRequest(LoadProvider<A, T, Bitmap> loadProvider, A model, Context context, Priority priority,
Target<Bitmap> target, float sizeMultiplier, Drawable placeholderDrawable, int placeholderResourceId,
public GenericRequest(LoadProvider<A, T, Z> loadProvider, A model, Context context, Priority priority,
Target<Z> target, float sizeMultiplier, Drawable placeholderDrawable, int placeholderResourceId,
Drawable errorDrawable, int errorResourceId, RequestListener<A> requestListener, int animationId,
Animation animation, RequestCoordinator requestCoordinator, Engine engine,
Transformation<Bitmap> transformation) {
Transformation<Z> transformation) {
this.loadProvider = loadProvider;
this.model = model;
this.context = context;
......@@ -148,9 +148,9 @@ public class BitmapRequest<A, T> implements Request, Target.SizeReadyCallback, R
width = Math.round(sizeMultiplier * width);
height = Math.round(sizeMultiplier * height);
ResourceDecoder<InputStream, Bitmap> cacheDecoder = loadProvider.getCacheDecoder();
ResourceDecoder<T, Bitmap> decoder = loadProvider.getSourceDecoder();
ResourceEncoder <Bitmap> encoder = loadProvider.getEncoder();
ResourceDecoder<InputStream, Z> cacheDecoder = loadProvider.getCacheDecoder();
ResourceDecoder<T, Z> decoder = loadProvider.getSourceDecoder();
ResourceEncoder <Z> encoder = loadProvider.getEncoder();
ModelLoader<A, T> modelLoader = loadProvider.getModelLoader();
final String id = modelLoader.getId(model);
......@@ -175,7 +175,7 @@ public class BitmapRequest<A, T> implements Request, Target.SizeReadyCallback, R
}
@Override
public void onResourceReady(Resource<Bitmap> resource) {
public void onResourceReady(Resource<Z> resource) {
if (!canSetImage()) {
resource.release();
return;
......
......@@ -11,7 +11,7 @@ import android.widget.ImageView;
import com.actionbarsherlock.app.SherlockFragment;
import com.bumptech.glide.Glide;
import com.bumptech.glide.ListPreloader;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.BitmapRequestBuilder;
import com.bumptech.glide.samples.flickr.api.Photo;
import java.util.ArrayList;
......@@ -79,7 +79,7 @@ public class FlickrPhotoGrid extends SherlockFragment implements PhotoViewer {
}
@Override
protected RequestBuilder<Photo> getRequestBuilder(Photo item) {
protected BitmapRequestBuilder<Photo> getRequestBuilder(Photo item) {
return Glide.with(context)
.loadFromImage(item)
.centerCrop();
......
......@@ -10,9 +10,9 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockFragment;
import com.bumptech.glide.BitmapRequestBuilder;
import com.bumptech.glide.Glide;
import com.bumptech.glide.ListPreloader;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.samples.flickr.api.Photo;
import java.util.ArrayList;
......@@ -89,7 +89,7 @@ public class FlickrPhotoList extends SherlockFragment implements PhotoViewer {
}
@Override
protected RequestBuilder getRequestBuilder(Photo item) {
protected BitmapRequestBuilder getRequestBuilder(Photo item) {
return Glide.with(context)
.loadFromImage(item)
.thumbnail(0.1f)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册