package com.swifty.fillcolor.model;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.swifty.fillcolor.util.ImageLoaderUtil;
public class AsynImageLoader {
public static void setOnClearCacheFinishListener(OnClearCacheFinishListener onClearCacheFinishListener) {
AsynImageLoader.onClearCacheFinishListener = onClearCacheFinishListener;
}
private static OnClearCacheFinishListener onClearCacheFinishListener;
public static void showImageAsyn(ImageView imageView, String url) {
if (url.contains("file://") || url.contains("drawable://")) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getOptions(getBlankDrawable()),
new ImageLoaderUtil.AnimateFirstDisplayListener());
return;
}
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getOptions(),
new ImageLoaderUtil.AnimateFirstDisplayListener());
}
private static Drawable getBlankDrawable() {
Drawable drawable;
int color = Color.argb(255, 255, 255, 255);
drawable = new ColorDrawable(color);
return drawable;
}
public static void showImageAsynWithoutCache(ImageView imageView, String url) {
if (url.contains("file://") || url.contains("drawable://")) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getNoCacheOptions(getBlankDrawable()),
new ImageLoaderUtil.AnimateFirstDisplayListener());
return;
}
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getNoCacheOptions(),
new ImageLoaderUtil.AnimateFirstDisplayListener());
}
public static void showImageAsynWithAllCacheOpen(ImageView imageView, String url) {
if (url.contains("file://") || url.contains("drawable://")) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getOpenAllCacheOptions(getBlankDrawable()),
new ImageLoaderUtil.AnimateFirstDisplayListener());
return;
}
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getOpenAllCacheOptions(),
new ImageLoaderUtil.AnimateFirstDisplayListener());
}
public static void showImageAsynWithAllCacheOpen(ImageView imageView, String url, ImageLoadingListener imageLoadingListener) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.getOpenAllCacheOptions(),
imageLoadingListener);
}
public static void showLagreImageAsynWithAllCacheOpen(ImageView imageView, String url, ImageLoadingListener listener) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.DetailImageOptions(),
listener);
}
public static void showLagreImageAsynWithNoCacheOpen(ImageView imageView, String url, ImageLoadingListener listener) {
ImageLoaderUtil.getInstance().displayImage(url, imageView,
ImageLoaderUtil.DetailImageOptionsNoCache(),
listener);
}
public static void clearCache() {
new AsyncTask() {
@Override
protected Object doInBackground(Object[] objects) {
ImageLoader.getInstance().clearMemoryCache();
ImageLoader.getInstance().clearDiskCache();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
if (onClearCacheFinishListener != null) {
onClearCacheFinishListener.clearCacheFinish();
}
}
}.execute();
}
public interface OnClearCacheFinishListener {
void clearCacheFinish();
}
}