aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services/AvatarService.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-05-31 21:49:40 +0200
committerChristian Schneppe <christian@pix-art.de>2017-05-31 21:49:40 +0200
commitc741b33bc22fc87eb75dbc448898ebeba88dbe0c (patch)
treecb7935fba0e0b7c19550e1ceb93b02ea26442f95 /src/main/java/de/pixart/messenger/services/AvatarService.java
parent21bf06c064554c406a6b769160c36a471da45e07 (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.java21
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)) {