fixed avatar in notification
This commit is contained in:
parent
f247abc2dc
commit
8a82586d5b
|
@ -321,7 +321,7 @@ public class Contact implements ListItem {
|
|||
@Override
|
||||
public Bitmap getImage(int size, Context context) {
|
||||
if (this.avatar!=null) {
|
||||
Bitmap bm = BitmapFactory.decodeFile(FileBackend.getAvatarPath(context, avatar));
|
||||
Bitmap bm = FileBackend.getAvatar(avatar, size, context);
|
||||
if (bm==null) {
|
||||
return UIHelper.getContactPicture(this, size, context, false);
|
||||
} else {
|
||||
|
|
|
@ -30,6 +30,7 @@ import eu.siacs.conversations.entities.Conversation;
|
|||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.services.ImageProvider;
|
||||
import eu.siacs.conversations.utils.CryptoHelper;
|
||||
import eu.siacs.conversations.utils.UIHelper;
|
||||
import eu.siacs.conversations.xmpp.jingle.JingleFile;
|
||||
import eu.siacs.conversations.xmpp.pep.Avatar;
|
||||
|
||||
|
@ -330,27 +331,31 @@ public class FileBackend {
|
|||
InputStream is = context.getContentResolver()
|
||||
.openInputStream(image);
|
||||
Bitmap input = BitmapFactory.decodeStream(is, null, options);
|
||||
int w = input.getWidth();
|
||||
int h = input.getHeight();
|
||||
|
||||
float scale = Math.max((float) size / h, (float) size / w);
|
||||
|
||||
float outWidth = scale * w;
|
||||
float outHeight = scale * h;
|
||||
float left = (size - outWidth) / 2;
|
||||
float top = (size - outHeight) / 2;
|
||||
RectF target = new RectF(left, top, left + outWidth, top
|
||||
+ outHeight);
|
||||
|
||||
Bitmap output = Bitmap.createBitmap(size, size, input.getConfig());
|
||||
Canvas canvas = new Canvas(output);
|
||||
canvas.drawBitmap(input, null, target, null);
|
||||
return output;
|
||||
return cropCenterSquare(input, size);
|
||||
} catch (FileNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap cropCenterSquare(Bitmap input, int size) {
|
||||
int w = input.getWidth();
|
||||
int h = input.getHeight();
|
||||
|
||||
float scale = Math.max((float) size / h, (float) size / w);
|
||||
|
||||
float outWidth = scale * w;
|
||||
float outHeight = scale * h;
|
||||
float left = (size - outWidth) / 2;
|
||||
float top = (size - outHeight) / 2;
|
||||
RectF target = new RectF(left, top, left + outWidth, top
|
||||
+ outHeight);
|
||||
|
||||
Bitmap output = Bitmap.createBitmap(size, size, input.getConfig());
|
||||
Canvas canvas = new Canvas(output);
|
||||
canvas.drawBitmap(input, null, target, null);
|
||||
return output;
|
||||
}
|
||||
|
||||
private int calcSampleSize(Uri image, int size)
|
||||
throws FileNotFoundException {
|
||||
BitmapFactory.Options options = new BitmapFactory.Options();
|
||||
|
@ -395,4 +400,12 @@ public class FileBackend {
|
|||
return resId;
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap getAvatar(String avatar, int size, Context context) {
|
||||
Bitmap bm = BitmapFactory.decodeFile(FileBackend.getAvatarPath(context, avatar));
|
||||
if (bm==null) {
|
||||
return null;
|
||||
}
|
||||
return cropCenterSquare(bm, UIHelper.getRealPx(size, context));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import eu.siacs.conversations.entities.Contact;
|
|||
import eu.siacs.conversations.entities.Conversation;
|
||||
import eu.siacs.conversations.entities.Message;
|
||||
import eu.siacs.conversations.entities.MucOptions.User;
|
||||
import eu.siacs.conversations.persistance.FileBackend;
|
||||
import eu.siacs.conversations.ui.ConversationActivity;
|
||||
import eu.siacs.conversations.ui.ManageAccountActivity;
|
||||
import android.app.Activity;
|
||||
|
@ -376,8 +377,7 @@ public class UIHelper {
|
|||
} else if (unread.size() == 1) {
|
||||
Conversation conversation = unread.get(0);
|
||||
targetUuid = conversation.getUuid();
|
||||
mBuilder.setLargeIcon(UIHelper.getContactPicture(conversation, 64,
|
||||
context, true));
|
||||
mBuilder.setLargeIcon(conversation.getImage(context, 64));
|
||||
mBuilder.setContentTitle(conversation.getName(useSubject));
|
||||
if (notify) {
|
||||
mBuilder.setTicker(conversation.getLatestMessage()
|
||||
|
|
Loading…
Reference in a new issue