package org.qii.weiciyuan.support.asyncdrawable;
import org.qii.weiciyuan.R;
import org.qii.weiciyuan.support.file.FileLocationMethod;
import org.qii.weiciyuan.support.file.FileManager;
import org.qii.weiciyuan.support.imageutility.ImageUtility;
import org.qii.weiciyuan.support.lib.MyAsyncTask;
import org.qii.weiciyuan.support.utils.GlobalContext;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.util.LruCache;
import android.view.View;
import android.widget.ImageView;
/**
* User: qii
* Date: 12-8-5
*/
public class ProfileAvatarReadWorker extends MyAsyncTask<String, Integer, Bitmap> {
private LruCache<String, Bitmap> lruCache;
private String data = "";
private ImageView view;
private GlobalContext globalContext;
public ProfileAvatarReadWorker(ImageView view, String url) {
this.lruCache = GlobalContext.getInstance().getBitmapCache();
this.view = view;
this.globalContext = GlobalContext.getInstance();
this.data = url;
}
@Override
protected Bitmap doInBackground(String... url) {
if (isCancelled()) {
return null;
}
String path = FileManager.getFilePathFromUrl(data, FileLocationMethod.avatar_large);
if (!(ImageUtility.isThisBitmapCanRead(path) && TaskCache.isThisUrlTaskFinished(data))) {
boolean downloaded = TaskCache
.waitForPictureDownload(data, null, path, FileLocationMethod.avatar_large);
if (downloaded) {
path = FileManager.getFilePathFromUrl(data, FileLocationMethod.avatar_large);
}
}
int avatarWidth = globalContext.getResources()
.getDimensionPixelSize(R.dimen.profile_avatar_width);
int avatarHeight = globalContext.getResources()
.getDimensionPixelSize(R.dimen.profile_avatar_height);
return ImageUtility.getRoundedCornerPic(path, avatarWidth, avatarHeight);
}
@Override
protected void onPostExecute(Bitmap bitmap) {
if (bitmap != null) {
view.setVisibility(View.VISIBLE);
view.setImageBitmap(bitmap);
lruCache.put(data, bitmap);
} else {
view.setImageDrawable(new ColorDrawable(Color.TRANSPARENT));
}
}
}