提交 e8b5d673 编写于 作者: R Robert Papp 提交者: Sam Judd

Move all ArrayDeque (API 9+) creations to Util.createQueue.

上级 c7e68591
package com.bumptech.glide;
import android.annotation.TargetApi;
import android.os.Build;
import android.widget.AbsListView;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.BaseTarget;
import com.bumptech.glide.request.target.SizeReadyCallback;
import com.bumptech.glide.util.Util;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
......@@ -147,13 +144,8 @@ public abstract class ListPreloader<T> implements AbsListView.OnScrollListener {
private static final class PreloadTargetQueue {
private final Queue<PreloadTarget> queue;
@TargetApi(9)
private PreloadTargetQueue(int size) {
if (Build.VERSION.SDK_INT >= 9) {
queue = new ArrayDeque<PreloadTarget>(size);
} else {
queue = new LinkedList<PreloadTarget>();
}
queue = Util.createQueue(size);
for (int i = 0; i < size; i++) {
queue.offer(new PreloadTarget());
......
package com.bumptech.glide.load.engine.bitmap_recycle;
import android.os.Build;
import com.bumptech.glide.util.Util;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;
abstract class BaseKeyPool<T extends Poolable> {
private static final int MAX_SIZE = 20;
private final Queue<T> keyPool;
public BaseKeyPool() {
if (Build.VERSION.SDK_INT >= 9) {
keyPool = new ArrayDeque<T>(MAX_SIZE);
} else {
keyPool = new LinkedList<T>();
}
}
private final Queue<T> keyPool = Util.createQueue(MAX_SIZE);
protected T get() {
T result = keyPool.poll();
......
package com.bumptech.glide.load.model;
import com.bumptech.glide.util.LruCache;
import com.bumptech.glide.util.Util;
import java.util.ArrayDeque;
import java.util.Queue;
/**
......@@ -61,7 +61,7 @@ public class ModelCache<A, B> {
}
private static final class ModelKey<A> {
private static final Queue<ModelKey> KEY_QUEUE = new ArrayDeque<ModelKey>();
private static final Queue<ModelKey> KEY_QUEUE = Util.createQueue(0);
@SuppressWarnings("unchecked")
public static <A> ModelKey<A> get(A model, int width, int height) {
......
......@@ -8,10 +8,10 @@ import android.util.Log;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.util.ByteArrayPool;
import com.bumptech.glide.util.Util;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayDeque;
import java.util.EnumSet;
import java.util.Queue;
import java.util.Set;
......@@ -26,7 +26,7 @@ public abstract class Downsampler implements BitmapDecoder<InputStream> {
private static final Set<ImageHeaderParser.ImageType> TYPES_THAT_USE_POOL = EnumSet.of(
ImageHeaderParser.ImageType.JPEG, ImageHeaderParser.ImageType.PNG_A, ImageHeaderParser.ImageType.PNG);
private static final Queue<BitmapFactory.Options> OPTIONS_QUEUE = new ArrayDeque<BitmapFactory.Options>();
private static final Queue<BitmapFactory.Options> OPTIONS_QUEUE = Util.createQueue(0);
@TargetApi(11)
private static synchronized BitmapFactory.Options getDefaultOptions() {
......
......@@ -19,7 +19,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.UUID;
......@@ -116,7 +115,7 @@ public class GifResourceDecoder implements ResourceDecoder<InputStream, GifDrawa
}
private static class DefaultGifHeaderParserPool implements GifHeaderParserPool {
private static final Queue<GifHeaderParser> POOL = new ArrayDeque<GifHeaderParser>();
private static final Queue<GifHeaderParser> POOL = Util.createQueue(0);
@Override
public GifHeaderParser obtain(byte[] data) {
......
......@@ -24,7 +24,6 @@ import com.bumptech.glide.util.LogTime;
import com.bumptech.glide.util.Util;
import java.io.File;
import java.util.ArrayDeque;
import java.util.Queue;
/**
......@@ -38,7 +37,7 @@ import java.util.Queue;
public final class GenericRequest<A, T, Z, R> implements Request, SizeReadyCallback,
ResourceCallback {
private static final String TAG = "GenericRequest";
private static final Queue<GenericRequest> REQUEST_POOL = new ArrayDeque<GenericRequest>();
private static final Queue<GenericRequest> REQUEST_POOL = Util.createQueue(0);
private enum Status {
PENDING,
......
......@@ -2,7 +2,6 @@ package com.bumptech.glide.util;
import android.util.Log;
import java.util.ArrayDeque;
import java.util.Queue;
/**
......@@ -16,7 +15,7 @@ public final class ByteArrayPool {
private static final int MAX_SIZE = 2 * 1048 * 1024;
private static final int MAX_BYTE_ARRAY_COUNT = MAX_SIZE / TEMP_BYTES_SIZE;
private final Queue<byte[]> tempQueue = new ArrayDeque<byte[]>();
private final Queue<byte[]> tempQueue = Util.createQueue(0);
private static final ByteArrayPool BYTE_ARRAY_POOL = new ByteArrayPool();
/**
......
package com.bumptech.glide.util;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Looper;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;
/**
* A collection of assorted utility classes.
*/
......@@ -67,4 +72,12 @@ public class Util {
return !isOnMainThread();
}
@SuppressLint("NewApi")
public static <T> Queue<T> createQueue(int size) {
if (Build.VERSION.SDK_INT < 9) {
return new LinkedList<T>();
} else {
return new ArrayDeque<T>(size);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册