From fb11b7dc096982e00e336f79923d89b273c04c28 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 29 Jan 2023 19:34:37 +0100 Subject: [PATCH] Use person icon for no avatar --- .../java/eu/faircode/email/ContactInfo.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/ContactInfo.java b/app/src/main/java/eu/faircode/email/ContactInfo.java index 7b6b8fc5d4..bfe399fcc6 100644 --- a/app/src/main/java/eu/faircode/email/ContactInfo.java +++ b/app/src/main/java/eu/faircode/email/ContactInfo.java @@ -29,6 +29,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -226,8 +227,30 @@ public class ContactInfo { } private static ContactInfo[] get(Context context, long account, String folderType, String selector, Address[] addresses, boolean cacheOnly) { - if (addresses == null || addresses.length == 0) + if (addresses == null || addresses.length == 0) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean avatars = prefs.getBoolean("avatars", true); + boolean bimi = (prefs.getBoolean("bimi", false) && !BuildConfig.PLAY_STORE_RELEASE); + boolean gravatars = (prefs.getBoolean("gravatars", false) && !BuildConfig.PLAY_STORE_RELEASE); + boolean libravatars = (prefs.getBoolean("libravatars", false) && !BuildConfig.PLAY_STORE_RELEASE); + boolean favicons = prefs.getBoolean("favicons", false); + boolean generated = prefs.getBoolean("generated_icons", true); + boolean identicons = prefs.getBoolean("identicons", false); + if (avatars || bimi || gravatars || libravatars || favicons || generated || identicons) { + Drawable d = context.getDrawable(R.drawable.twotone_person_24); + Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + d.setTint(Helper.resolveColor(context, R.attr.colorSeparator)); + d.draw(canvas); + + ContactInfo anonymous = new ContactInfo(); + anonymous.bitmap = bitmap; + return new ContactInfo[]{anonymous}; + } + return new ContactInfo[]{new ContactInfo()}; + } ContactInfo[] result = new ContactInfo[addresses.length]; for (int i = 0; i < addresses.length; i++) {