blob: b20985a43df7dca5f84f6f0282d97cd7a9bf5908 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
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.avatar.AvatarCache;
import de.thedevstack.conversationsplus.services.avatar.AvatarService;
/**
*
*/
public class AvatarBitmapTask<T extends LoadAvatarFor> extends AsyncTask<T, Void, Bitmap> {
private final WeakReference<ImageView> 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 AvatarCache.get((Conversation)params[0], this.avatarSize);
} else if (params[0] instanceof Message) {
return AvatarCache.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);
}
}
}
}
|