Added ellipsis tile for large conversations

For more than 4 members in a conversation, the fourth tile now contains
an ellipsis to indicate this
This commit is contained in:
Andreas Straub 2014-04-13 20:44:17 +02:00
parent 901ce085a7
commit 132689376c
1 changed files with 17 additions and 5 deletions

View File

@ -84,18 +84,30 @@ public class UIHelper {
return color; return color;
} }
int tiles = (names.length > 4)? 4 : names.length;
private static Bitmap getUnknownContactPicture(String[] names, int size, int bgColor, int fgColor) { private static Bitmap getUnknownContactPicture(String[] names, int size, int bgColor, int fgColor) {
int tiles = (names.length > 4)? 4 :
(names.length < 1)? 1 :
names.length;
Bitmap bitmap = Bitmap Bitmap bitmap = Bitmap
.createBitmap(size, size, Bitmap.Config.ARGB_8888); .createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap); Canvas canvas = new Canvas(bitmap);
String[] letters = new String[tiles]; String[] letters = new String[tiles];
int[] colors = new int[tiles]; int[] colors = new int[tiles];
for(int i = 0; i < tiles; ++i) { if (names.length < 1) {
letters[i] = (names[i].length() > 0) ? letters[0] = "?";
names[i].substring(0, 1).toUpperCase(Locale.US) : " "; colors[0] = 0xFFe92727;
colors[i] = getNameColor(names[i]); } else {
for(int i = 0; i < tiles; ++i) {
letters[i] = (names[i].length() > 0) ?
names[i].substring(0, 1).toUpperCase(Locale.US) : " ";
colors[i] = getNameColor(names[i]);
}
if (names.length > 4) {
letters[3] = "\u2026"; // Unicode ellipsis
colors[3] = 0xFF444444;
}
} }
Paint textPaint = new Paint(), tilePaint = new Paint(); Paint textPaint = new Paint(), tilePaint = new Paint();
textPaint.setColor(fgColor); textPaint.setColor(fgColor);