diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-05-31 21:49:40 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-05-31 21:49:40 +0200 |
commit | c741b33bc22fc87eb75dbc448898ebeba88dbe0c (patch) | |
tree | cb7935fba0e0b7c19550e1ceb93b02ea26442f95 /src/main/java/de/pixart/messenger/services/AvatarService.java | |
parent | 21bf06c064554c406a6b769160c36a471da45e07 (diff) |
add the 4 most frequently contacted contacts as app shortcuts
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/AvatarService.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/services/AvatarService.java b/src/main/java/de/pixart/messenger/services/AvatarService.java index 15c49940f..3d3af8d26 100644 --- a/src/main/java/de/pixart/messenger/services/AvatarService.java +++ b/src/main/java/de/pixart/messenger/services/AvatarService.java @@ -3,9 +3,12 @@ package de.pixart.messenger.services; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.Typeface; import android.net.Uri; +import android.util.DisplayMetrics; import android.util.Log; import java.util.ArrayList; @@ -69,6 +72,24 @@ public class AvatarService implements OnAdvancedStreamFeaturesLoaded { return avatar; } + public Bitmap getRoundedShortcut(final Contact contact) { + DisplayMetrics metrics = mXmppConnectionService.getResources().getDisplayMetrics(); + int size = Math.round(metrics.density * 48); + Bitmap bitmap = get(contact, size); + Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + + final Paint paint = new Paint(); + final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); + + paint.setAntiAlias(true); + canvas.drawARGB(0, 0, 0, 0); + canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint); + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmap, rect, rect, paint); + return output; + } + public Bitmap get(final MucOptions.User user, final int size, boolean cachedOnly) { Contact c = user.getContact(); if (c != null && (c.getProfilePhoto() != null || c.getAvatar() != null || user.getAvatar() == null)) { |