diff --git a/library/src/main/java/com/bumptech/glide/ListPreloader.java b/library/src/main/java/com/bumptech/glide/ListPreloader.java index 4a1d4d40e94f0f8dd554f12bd8f52212d4154bb1..e49d908eba50b533f4f0f797828172249ffd9e00 100644 --- a/library/src/main/java/com/bumptech/glide/ListPreloader.java +++ b/library/src/main/java/com/bumptech/glide/ListPreloader.java @@ -1,15 +1,12 @@ 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 implements AbsListView.OnScrollListener { private static final class PreloadTargetQueue { private final Queue queue; - @TargetApi(9) private PreloadTargetQueue(int size) { - if (Build.VERSION.SDK_INT >= 9) { - queue = new ArrayDeque(size); - } else { - queue = new LinkedList(); - } + queue = Util.createQueue(size); for (int i = 0; i < size; i++) { queue.offer(new PreloadTarget()); diff --git a/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/BaseKeyPool.java b/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/BaseKeyPool.java index cc4a7101a16b38a713982612591b435983577e96..bfd8d373aecc273387758e02279e665ecb796b62 100644 --- a/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/BaseKeyPool.java +++ b/library/src/main/java/com/bumptech/glide/load/engine/bitmap_recycle/BaseKeyPool.java @@ -1,22 +1,12 @@ 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 { private static final int MAX_SIZE = 20; - private final Queue keyPool; - - public BaseKeyPool() { - if (Build.VERSION.SDK_INT >= 9) { - keyPool = new ArrayDeque(MAX_SIZE); - } else { - keyPool = new LinkedList(); - } - } + private final Queue keyPool = Util.createQueue(MAX_SIZE); protected T get() { T result = keyPool.poll(); diff --git a/library/src/main/java/com/bumptech/glide/load/model/ModelCache.java b/library/src/main/java/com/bumptech/glide/load/model/ModelCache.java index 36c73ee89adf3170ae70802b9d4da4c87fd024ff..a2867190dcd15865a311db2472d8802decbf9623 100644 --- a/library/src/main/java/com/bumptech/glide/load/model/ModelCache.java +++ b/library/src/main/java/com/bumptech/glide/load/model/ModelCache.java @@ -1,8 +1,8 @@ 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 { } private static final class ModelKey { - private static final Queue KEY_QUEUE = new ArrayDeque(); + private static final Queue KEY_QUEUE = Util.createQueue(0); @SuppressWarnings("unchecked") public static ModelKey get(A model, int width, int height) { diff --git a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java index 91109eb9a6223c9f415f1d2d32f21b9ba2ccadaa..3ad42fbfab711d3fafb4029b13e588758193f2b4 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/bitmap/Downsampler.java @@ -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 { private static final Set TYPES_THAT_USE_POOL = EnumSet.of( ImageHeaderParser.ImageType.JPEG, ImageHeaderParser.ImageType.PNG_A, ImageHeaderParser.ImageType.PNG); - private static final Queue OPTIONS_QUEUE = new ArrayDeque(); + private static final Queue OPTIONS_QUEUE = Util.createQueue(0); @TargetApi(11) private static synchronized BitmapFactory.Options getDefaultOptions() { diff --git a/library/src/main/java/com/bumptech/glide/load/resource/gif/GifResourceDecoder.java b/library/src/main/java/com/bumptech/glide/load/resource/gif/GifResourceDecoder.java index fbe0f71a9411f856e786a50d689ede1f7bbad0dc..d491beaffa05dc4d619c5a1c05647578d44bda00 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/gif/GifResourceDecoder.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/gif/GifResourceDecoder.java @@ -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 POOL = new ArrayDeque(); + private static final Queue POOL = Util.createQueue(0); @Override public GifHeaderParser obtain(byte[] data) { diff --git a/library/src/main/java/com/bumptech/glide/request/GenericRequest.java b/library/src/main/java/com/bumptech/glide/request/GenericRequest.java index 452db83960cc634fa0d8d30c7e1bf88c4eebaef2..608e35c7d0de8687304600fb38c6980530965555 100644 --- a/library/src/main/java/com/bumptech/glide/request/GenericRequest.java +++ b/library/src/main/java/com/bumptech/glide/request/GenericRequest.java @@ -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 implements Request, SizeReadyCallback, ResourceCallback { private static final String TAG = "GenericRequest"; - private static final Queue REQUEST_POOL = new ArrayDeque(); + private static final Queue REQUEST_POOL = Util.createQueue(0); private enum Status { PENDING, diff --git a/library/src/main/java/com/bumptech/glide/util/ByteArrayPool.java b/library/src/main/java/com/bumptech/glide/util/ByteArrayPool.java index 85c1ef37a86615ec0ac65ef884066ead7737a031..f89d5ff3bfac20d91eb6a2f06807dc862041364c 100644 --- a/library/src/main/java/com/bumptech/glide/util/ByteArrayPool.java +++ b/library/src/main/java/com/bumptech/glide/util/ByteArrayPool.java @@ -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 tempQueue = new ArrayDeque(); + private final Queue tempQueue = Util.createQueue(0); private static final ByteArrayPool BYTE_ARRAY_POOL = new ByteArrayPool(); /** diff --git a/library/src/main/java/com/bumptech/glide/util/Util.java b/library/src/main/java/com/bumptech/glide/util/Util.java index fbfb0164134dcbd853d7294ac740f66eae9c75cb..c918f28a0018dd0061eb4fd0af8ff9fb9e9ae3b4 100644 --- a/library/src/main/java/com/bumptech/glide/util/Util.java +++ b/library/src/main/java/com/bumptech/glide/util/Util.java @@ -1,10 +1,15 @@ 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 Queue createQueue(int size) { + if (Build.VERSION.SDK_INT < 9) { + return new LinkedList(); + } else { + return new ArrayDeque(size); + } + } }