package de.thedevstack.conversationsplus.ui.tasks; import android.graphics.Bitmap; import android.os.AsyncTask; import android.widget.ImageView; import java.lang.ref.WeakReference; import de.thedevstack.conversationsplus.dto.LoadAvatarFor; import de.thedevstack.conversationsplus.entities.Conversation; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.services.AvatarService; /** * */ public class AvatarBitmapTask extends AsyncTask { private final WeakReference imageViewReference; private int avatarSize; public AvatarBitmapTask(ImageView imageView, int size) { imageViewReference = new WeakReference<>(imageView); this.avatarSize = size; } @Override protected Bitmap doInBackground(T... params) { if (params[0] instanceof Conversation) { return AvatarService.getInstance().get((Conversation)params[0], this.avatarSize); } else if (params[0] instanceof Message) { return AvatarService.getInstance().get((Message) params[0], this.avatarSize, isCancelled()); // Wirklich die richtige Nutzung von isCancelled()??? } else { return null; } } @Override protected void onPostExecute(Bitmap bitmap) { if (bitmap != null) { final ImageView imageView = imageViewReference.get(); if (imageView != null) { imageView.setImageBitmap(bitmap); imageView.setBackgroundColor(0x00000000); } } } }