am bd68d901: am 79d00f42: Merge "fix ImageLoader.getCacheKey()"
* commit 'bd68d901bec2cb497d27ee0502ab9b4cee1fab7a':
fix ImageLoader.getCacheKey()
diff --git a/src/main/java/com/android/volley/toolbox/ImageLoader.java b/src/main/java/com/android/volley/toolbox/ImageLoader.java
index 995bb48..d5305e3 100644
--- a/src/main/java/com/android/volley/toolbox/ImageLoader.java
+++ b/src/main/java/com/android/volley/toolbox/ImageLoader.java
@@ -21,7 +21,6 @@
import android.os.Looper;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
-
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response.ErrorListener;
@@ -151,9 +150,22 @@
* @return True if the item exists in cache, false otherwise.
*/
public boolean isCached(String requestUrl, int maxWidth, int maxHeight) {
+ return isCached(requestUrl, maxWidth, maxHeight, ScaleType.CENTER_INSIDE);
+ }
+
+ /**
+ * Checks if the item is available in the cache.
+ *
+ * @param requestUrl The url of the remote image
+ * @param maxWidth The maximum width of the returned image.
+ * @param maxHeight The maximum height of the returned image.
+ * @param scaleType The scaleType of the imageView.
+ * @return True if the item exists in cache, false otherwise.
+ */
+ public boolean isCached(String requestUrl, int maxWidth, int maxHeight, ScaleType scaleType) {
throwIfNotOnMainThread();
- String cacheKey = getCacheKey(requestUrl, maxWidth, maxHeight);
+ String cacheKey = getCacheKey(requestUrl, maxWidth, maxHeight, scaleType);
return mCache.getBitmap(cacheKey) != null;
}
@@ -194,11 +206,11 @@
*/
public ImageContainer get(String requestUrl, ImageListener imageListener,
int maxWidth, int maxHeight, ScaleType scaleType) {
-
+
// only fulfill requests that were initiated from the main thread.
throwIfNotOnMainThread();
- final String cacheKey = getCacheKey(requestUrl, maxWidth, maxHeight);
+ final String cacheKey = getCacheKey(requestUrl, maxWidth, maxHeight, scaleType);
// Try to look up the request in the cache of remote images.
Bitmap cachedBitmap = mCache.getBitmap(cacheKey);
@@ -485,9 +497,11 @@
* @param url The URL of the request.
* @param maxWidth The max-width of the output.
* @param maxHeight The max-height of the output.
+ * @param scaleType The scaleType of the imageView.
*/
- private static String getCacheKey(String url, int maxWidth, int maxHeight) {
+ private static String getCacheKey(String url, int maxWidth, int maxHeight, ScaleType scaleType) {
return new StringBuilder(url.length() + 12).append("#W").append(maxWidth)
- .append("#H").append(maxHeight).append(url).toString();
+ .append("#H").append(maxHeight).append("#S").append(scaleType.ordinal()).append(url)
+ .toString();
}
}
diff --git a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
index 81de6fe..8a19817 100644
--- a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
+++ b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
@@ -84,6 +84,8 @@
assertNotNull(ImageLoader.class.getMethod("getImageListener", ImageView.class,
int.class, int.class));
assertNotNull(ImageLoader.class.getMethod("isCached", String.class, int.class, int.class));
+ assertNotNull(ImageLoader.class.getMethod("isCached", String.class, int.class, int.class,
+ ImageView.ScaleType.class));
assertNotNull(ImageLoader.class.getMethod("get", String.class,
ImageLoader.ImageListener.class));
assertNotNull(ImageLoader.class.getMethod("get", String.class,