61 lines
1.9 KiB
Java
61 lines
1.9 KiB
Java
|
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<String, Bitmap> 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 <T> void addToRequestQueue(Request<T> request) {
|
||
|
getRequestQueue().add(request);
|
||
|
}
|
||
|
|
||
|
public ImageLoader getImageLoader() {
|
||
|
return imageLoader;
|
||
|
}
|
||
|
}
|