package it.sephiroth.android.library.imagezoom.test.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.graphics.Bitmap; public class ImageCahceController { private int maxThumbnailCacheSize = 60; private Map<String, Bitmap> thumbnailCacheList = new HashMap<String, Bitmap>(); private List<String> thumbnailCacheKeyList = new ArrayList<String>(); public ImageCahceController(int maxThumbnailCacheSize) { this.maxThumbnailCacheSize = maxThumbnailCacheSize; } public synchronized void thumbnailCacheController(String url, Bitmap bitmap) { synchronized (this.thumbnailCacheList) { this.thumbnailCacheList.put(url, bitmap); this.thumbnailCacheKeyList.add(url); if(this.thumbnailCacheList.size() > this.maxThumbnailCacheSize) { try { for(int i = 0 ; i < this.thumbnailCacheList.size()-this.maxThumbnailCacheSize ; i++) { String olderUrl = this.thumbnailCacheKeyList.get(i); this.thumbnailCacheList.remove(olderUrl); this.thumbnailCacheKeyList.remove(i); } } catch(Exception e) { } } } } public synchronized void clearThumbnailCache() { this.thumbnailCacheList.clear(); this.thumbnailCacheKeyList.clear(); } public boolean isThumbnailCache(String url) { return this.thumbnailCacheList.containsKey(url); } public Bitmap getThumbnailCache(String url) { return this.thumbnailCacheList.get(url); } public int getThumbnailSize() { return this.thumbnailCacheList.size(); } public void setThumbnailCacheLimit(int limitSize) { if(limitSize > 0) { this.maxThumbnailCacheSize = limitSize+2; } } public Map<String, Bitmap> getThumbnailCacheList() { return thumbnailCacheList; } }