always call to cancel before loading new avatars

iNPUTmice created

Change summary

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java | 26 
src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java     | 26 
2 files changed, 28 insertions(+), 24 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java 🔗

@@ -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) {
+				}
 			}
 		}
 	}

src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java 🔗

@@ -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) {
+				}
 			}
 		}
 	}