mirror of https://github.com/M66B/FairEmail.git
Lighten or darken identicon
This commit is contained in:
parent
e6970faf6e
commit
ae47e0fe6e
|
@ -118,6 +118,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||||
private boolean debug;
|
private boolean debug;
|
||||||
|
|
||||||
private int dp24;
|
private int dp24;
|
||||||
|
private String theme;
|
||||||
|
|
||||||
private SelectionTracker<Long> selectionTracker = null;
|
private SelectionTracker<Long> selectionTracker = null;
|
||||||
|
|
||||||
|
@ -292,7 +293,9 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||||
}
|
}
|
||||||
if (!photo && identicons) {
|
if (!photo && identicons) {
|
||||||
if (message.from.length > 0)
|
if (message.from.length > 0)
|
||||||
ivAvatar.setImageBitmap(Identicon.generate(((InternetAddress) message.from[0]).getAddress(), dp24, 5));
|
ivAvatar.setImageBitmap(
|
||||||
|
Identicon.generate(((InternetAddress) message.from[0]).getAddress(),
|
||||||
|
dp24, 5, "light".equals(theme)));
|
||||||
else
|
else
|
||||||
ivAvatar.setImageDrawable(null);
|
ivAvatar.setImageDrawable(null);
|
||||||
photo = true;
|
photo = true;
|
||||||
|
@ -1409,6 +1412,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||||
this.debug = prefs.getBoolean("debug", false);
|
this.debug = prefs.getBoolean("debug", false);
|
||||||
|
|
||||||
this.dp24 = Math.round(24 * Resources.getSystem().getDisplayMetrics().density);
|
this.dp24 = Math.round(24 * Resources.getSystem().getDisplayMetrics().density);
|
||||||
|
this.theme = prefs.getString("theme", "light");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<TupleMessageEx> DIFF_CALLBACK =
|
private static final DiffUtil.ItemCallback<TupleMessageEx> DIFF_CALLBACK =
|
||||||
|
|
|
@ -9,8 +9,10 @@ import android.graphics.RectF;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
import androidx.core.graphics.ColorUtils;
|
||||||
|
|
||||||
class Identicon {
|
class Identicon {
|
||||||
static Bitmap generate(String email, int size, int pixels) {
|
static Bitmap generate(String email, int size, int pixels, boolean dark) {
|
||||||
byte[] hash;
|
byte[] hash;
|
||||||
try {
|
try {
|
||||||
hash = MessageDigest.getInstance("MD5").digest(email.getBytes());
|
hash = MessageDigest.getInstance("MD5").digest(email.getBytes());
|
||||||
|
@ -18,12 +20,15 @@ class Identicon {
|
||||||
hash = email.getBytes();
|
hash = email.getBytes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int color = Color.argb(255, hash[0], hash[1], hash[2]);
|
||||||
|
color = ColorUtils.blendARGB(color, dark ? Color.BLACK : Color.WHITE, 0.2f);
|
||||||
|
|
||||||
Paint paint = new Paint();
|
Paint paint = new Paint();
|
||||||
paint.setColor(Color.argb(255, hash[0], hash[1], hash[2]));
|
paint.setColor(color);
|
||||||
|
|
||||||
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||||
Canvas canvas = new Canvas(bitmap);
|
Canvas canvas = new Canvas(bitmap);
|
||||||
canvas.drawColor(Color.argb(255, 128, 128, 128));
|
canvas.drawColor(Color.TRANSPARENT);
|
||||||
|
|
||||||
float psize = (float) size / pixels;
|
float psize = (float) size / pixels;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue