package com.uservoice.uservoicesdk.image;
import android.graphics.Bitmap;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ImageCache {
private static ImageCache instance;
private int capacity = 20;
private Map<String, Bitmap> cache = new HashMap<String, Bitmap>(capacity);
private List<String> mru = new ArrayList<String>();
public static ImageCache getInstance() {
if (instance == null) {
instance = new ImageCache();
}
return instance;
}
public void loadImage(String url, ImageView imageView) {
if (cache.containsKey(url)) {
imageView.setImageBitmap(cache.get(url));
mru.remove(url);
mru.add(url);
} else {
new DownloadImageTask(url, imageView).execute();
}
}
public void set(String url, Bitmap bitmap) {
if (cache.containsKey(url)) {
cache.put(url, bitmap);
mru.remove(url);
mru.add(url);
} else {
if (cache.size() == capacity) {
String lru = mru.get(0);
cache.remove(lru);
mru.remove(0);
}
cache.put(url, bitmap);
mru.add(url);
}
}
public void purge() {
cache.clear();
mru.clear();
}
}