package com.keylesspalace.tusky; import android.content.Context; import android.graphics.Bitmap; import android.support.v4.util.LruCache; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.Volley; public class VolleySingleton { private static VolleySingleton instance; private RequestQueue requestQueue; private ImageLoader imageLoader; private static Context context; private VolleySingleton(Context context) { VolleySingleton.context = context; requestQueue = getRequestQueue(); imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() { private final LruCache cache = new LruCache<>(20); @Override public Bitmap getBitmap(String url) { return cache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { cache.put(url, bitmap); } }); } public static synchronized VolleySingleton getInstance(Context context) { if (instance == null) { instance = new VolleySingleton(context); } return instance; } public RequestQueue getRequestQueue() { if (requestQueue == null) { /* getApplicationContext() is key, it keeps you from leaking the * Activity or BroadcastReceiver if someone passes one in. */ requestQueue= Volley.newRequestQueue(context.getApplicationContext()); } return requestQueue; } public void addToRequestQueue(Request request) { getRequestQueue().add(request); } public ImageLoader getImageLoader() { return imageLoader; } }