This is in connection with this question regarding Volley Image caching. So, now I want to implement DiskLruCache, but I am not sure on how to do this.
I downloaded the Jar file from github and added it to my project.
What should I do next? How can I change the existing code of Volley and integrate DiskLruCache?
Existing code:
Initialising Volley:
queue = Volley.newRequestQueue(getActivity());
imageLoader = new ImageLoader(queue, new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(
10);
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
Getting response from server and parsing:
jsArrayRequest = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
if (Const.DEBUGGING) {
Log.d(Const.DEBUG,
"Response => " + response.toString());
Log.d(Const.DEBUG, "Length = " + response.length());
}
parseResponse(response, url);
setRetrivalSuccess();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (Const.DEBUGGING) {
Log.d(Const.DEBUG, "Volley Error");
Log.d(Const.DEBUG, "Error = " + error.toString());
}
((MainFragmentActivity) getActivity())
.setSupportProgressBarIndeterminateVisibility(false);
}
});
queue.add(jsArrayRequest);
I have seen few examples on SO, but I couldn't understand how to link Volley with DiskLruCache.
ImageLoader needs a ImageCache, to use DiskLruCache, you will have to have a wrapper over it which implements ImageCache. VolleyImageCacheExample (Recommended approach is to use basic memory LRU cache as L1 cache and disk cache as L2)