From 64212072c095305a020d622278f9407e1c4ef09a Mon Sep 17 00:00:00 2001 From: Stephan Fuhrmann Date: Tue, 23 Jul 2013 21:46:03 +0200 Subject: [PATCH] Changed hash based color calc to a hash indexed palette as discussed in the pull request. --- .../activity/misc/ContactPictureLoader.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/activity/misc/ContactPictureLoader.java b/src/com/fsck/k9/activity/misc/ContactPictureLoader.java index 8fe474f77..768760a25 100644 --- a/src/com/fsck/k9/activity/misc/ContactPictureLoader.java +++ b/src/com/fsck/k9/activity/misc/ContactPictureLoader.java @@ -67,6 +67,23 @@ public class ContactPictureLoader { */ private final LruCache mUnknownContactsCache; + private final static int CONTACT_DUMMY_COLORS_ARGB[] = { + 0xffff0000, // 0 R, G, B + 0xff00ff00, + 0xff0000ff, + 0xffff8000, // 3 mix ff with 80 + 0xff0080ff, + 0xff80ff00, + 0xff8000ff, + 0xffff0080, + 0xff00ff80, + 0xff8040ff, // 9 mit 80 with 40 and ff + 0xff80ff40, + 0xffff4080, + 0xffff8040, + 0xff40ff80, + 0xff4080ff, + }; public ContactPictureLoader(Context context, int defaultPictureResource) { Context appContext = context.getApplicationContext(); @@ -145,12 +162,8 @@ public class ContactPictureLoader { } private int calcUnknownContactColor(Address address) { - int val = address.getAddress().toLowerCase().hashCode(); - int rgb = - (0xff) << 24 | - (~val & 0xff) << 16 | - (val & 0xff) << 8 | - (val>>>8 & 0xff); + int val = address.getAddress().toLowerCase().hashCode(); + int rgb = CONTACT_DUMMY_COLORS_ARGB[val % CONTACT_DUMMY_COLORS_ARGB.length]; return rgb; }