always call to cancel before loading new avatars

This commit is contained in:
iNPUTmice 2015-02-18 18:12:43 +01:00
parent b128b33e56
commit 9c2e6392ec
2 changed files with 28 additions and 24 deletions

View File

@ -135,18 +135,20 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> {
}
public void loadAvatar(Conversation conversation, ImageView imageView) {
Bitmap bm = activity.avatarService().get(conversation,activity.getPixel(56),true);
if (bm != null) {
imageView.setImageBitmap(bm);
imageView.setBackgroundColor(0x00000000);
} else if (cancelPotentialWork(conversation, imageView)) {
imageView.setBackgroundColor(UIHelper.getColorForName(conversation.getName()));
final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
imageView.setImageDrawable(asyncDrawable);
try {
task.execute(conversation);
} catch (final RejectedExecutionException ignored) {
if (cancelPotentialWork(conversation, imageView)) {
final Bitmap bm = activity.avatarService().get(conversation, activity.getPixel(56), true);
if (bm != null) {
imageView.setImageBitmap(bm);
imageView.setBackgroundColor(0x00000000);
} else {
imageView.setBackgroundColor(UIHelper.getColorForName(conversation.getName()));
final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
imageView.setImageDrawable(asyncDrawable);
try {
task.execute(conversation);
} catch (final RejectedExecutionException ignored) {
}
}
}
}

View File

@ -121,18 +121,20 @@ public class ListItemAdapter extends ArrayAdapter<ListItem> {
}
public void loadAvatar(ListItem item, ImageView imageView) {
Bitmap bm = activity.avatarService().get(item,activity.getPixel(48),true);
if (bm != null) {
imageView.setImageBitmap(bm);
imageView.setBackgroundColor(0x00000000);
} else if (cancelPotentialWork(item, imageView)) {
imageView.setBackgroundColor(UIHelper.getColorForName(item.getDisplayName()));
final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
imageView.setImageDrawable(asyncDrawable);
try {
task.execute(item);
} catch (final RejectedExecutionException ignored) {
if (cancelPotentialWork(item, imageView)) {
final Bitmap bm = activity.avatarService().get(item,activity.getPixel(48),true);
if (bm != null) {
imageView.setImageBitmap(bm);
imageView.setBackgroundColor(0x00000000);
} else {
imageView.setBackgroundColor(UIHelper.getColorForName(item.getDisplayName()));
final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
imageView.setImageDrawable(asyncDrawable);
try {
task.execute(item);
} catch (final RejectedExecutionException ignored) {
}
}
}
}