fixed #617
This commit is contained in:
parent
f8d5d6b2b5
commit
6a43bda4d7
|
@ -1,5 +1,12 @@
|
||||||
package eu.siacs.conversations.services;
|
package eu.siacs.conversations.services;
|
||||||
|
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
import android.graphics.Rect;
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
import android.net.Uri;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -10,12 +17,6 @@ import eu.siacs.conversations.entities.Contact;
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
import eu.siacs.conversations.entities.ListItem;
|
import eu.siacs.conversations.entities.ListItem;
|
||||||
import eu.siacs.conversations.entities.MucOptions;
|
import eu.siacs.conversations.entities.MucOptions;
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.Canvas;
|
|
||||||
import android.graphics.Paint;
|
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.graphics.Typeface;
|
|
||||||
import android.net.Uri;
|
|
||||||
|
|
||||||
public class AvatarService {
|
public class AvatarService {
|
||||||
|
|
||||||
|
@ -41,19 +42,14 @@ public class AvatarService {
|
||||||
if (avatar != null) {
|
if (avatar != null) {
|
||||||
return avatar;
|
return avatar;
|
||||||
}
|
}
|
||||||
avatar = mXmppConnectionService.getFileBackend().getAvatar(
|
if (contact.getProfilePhoto() != null) {
|
||||||
contact.getAvatar(), size);
|
avatar = mXmppConnectionService.getFileBackend().cropCenterSquare(Uri.parse(contact.getProfilePhoto()), size);
|
||||||
|
}
|
||||||
|
if (avatar == null && contact.getAvatar() != null) {
|
||||||
|
avatar = mXmppConnectionService.getFileBackend().getAvatar(contact.getAvatar(), size);
|
||||||
|
}
|
||||||
if (avatar == null) {
|
if (avatar == null) {
|
||||||
if (contact.getProfilePhoto() != null) {
|
avatar = get(contact.getDisplayName(), size);
|
||||||
avatar = mXmppConnectionService.getFileBackend()
|
|
||||||
.cropCenterSquare(Uri.parse(contact.getProfilePhoto()),
|
|
||||||
size);
|
|
||||||
if (avatar == null) {
|
|
||||||
avatar = get(contact.getDisplayName(), size);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
avatar = get(contact.getDisplayName(), size);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.mXmppConnectionService.getBitmapCache().put(KEY, avatar);
|
this.mXmppConnectionService.getBitmapCache().put(KEY, avatar);
|
||||||
return avatar;
|
return avatar;
|
||||||
|
@ -225,7 +221,7 @@ public class AvatarService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTile(Canvas canvas, String letter, int tileColor,
|
private void drawTile(Canvas canvas, String letter, int tileColor,
|
||||||
int left, int top, int right, int bottom) {
|
int left, int top, int right, int bottom) {
|
||||||
letter = letter.toUpperCase(Locale.getDefault());
|
letter = letter.toUpperCase(Locale.getDefault());
|
||||||
Paint tilePaint = new Paint(), textPaint = new Paint();
|
Paint tilePaint = new Paint(), textPaint = new Paint();
|
||||||
tilePaint.setColor(tileColor);
|
tilePaint.setColor(tileColor);
|
||||||
|
@ -244,15 +240,15 @@ public class AvatarService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTile(Canvas canvas, MucOptions.User user, int left,
|
private void drawTile(Canvas canvas, MucOptions.User user, int left,
|
||||||
int top, int right, int bottom) {
|
int top, int right, int bottom) {
|
||||||
Contact contact = user.getContact();
|
Contact contact = user.getContact();
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
Uri uri = null;
|
Uri uri = null;
|
||||||
if (contact.getAvatar() != null) {
|
if (contact.getProfilePhoto() != null) {
|
||||||
|
uri = Uri.parse(contact.getProfilePhoto());
|
||||||
|
} else if (contact.getAvatar() != null) {
|
||||||
uri = mXmppConnectionService.getFileBackend().getAvatarUri(
|
uri = mXmppConnectionService.getFileBackend().getAvatarUri(
|
||||||
contact.getAvatar());
|
contact.getAvatar());
|
||||||
} else if (contact.getProfilePhoto() != null) {
|
|
||||||
uri = Uri.parse(contact.getProfilePhoto());
|
|
||||||
}
|
}
|
||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
Bitmap bitmap = mXmppConnectionService.getFileBackend()
|
Bitmap bitmap = mXmppConnectionService.getFileBackend()
|
||||||
|
@ -277,15 +273,15 @@ public class AvatarService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawTile(Canvas canvas, Bitmap bm, int dstleft, int dsttop,
|
private void drawTile(Canvas canvas, Bitmap bm, int dstleft, int dsttop,
|
||||||
int dstright, int dstbottom) {
|
int dstright, int dstbottom) {
|
||||||
Rect dst = new Rect(dstleft, dsttop, dstright, dstbottom);
|
Rect dst = new Rect(dstleft, dsttop, dstright, dstbottom);
|
||||||
canvas.drawBitmap(bm, null, dst, null);
|
canvas.drawBitmap(bm, null, dst, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getColorForName(String name) {
|
private int getColorForName(String name) {
|
||||||
int holoColors[] = { 0xFFe91e63, 0xFF9c27b0, 0xFF673ab7, 0xFF3f51b5,
|
int holoColors[] = {0xFFe91e63, 0xFF9c27b0, 0xFF673ab7, 0xFF3f51b5,
|
||||||
0xFF5677fc, 0xFF03a9f4, 0xFF00bcd4, 0xFF009688, 0xFFff5722,
|
0xFF5677fc, 0xFF03a9f4, 0xFF00bcd4, 0xFF009688, 0xFFff5722,
|
||||||
0xFF795548, 0xFF607d8b };
|
0xFF795548, 0xFF607d8b};
|
||||||
return holoColors[(int) ((name.hashCode() & 0xffffffffl) % holoColors.length)];
|
return holoColors[(int) ((name.hashCode() & 0xffffffffl) % holoColors.length)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue