Messaging: Contact Colors
Adds the option to use individual colors for contacts. Matches the colors used in Contacts. Change-Id: I9f222308a900c5d47ec16f83232bd7f6d9af6cd7
This commit is contained in:
@@ -17,6 +17,7 @@ package com.android.messaging.datamodel.media;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Matrix;
|
||||
@@ -27,6 +28,7 @@ import android.graphics.Typeface;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.media.ExifInterface;
|
||||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.util.Assert;
|
||||
@@ -42,10 +44,12 @@ import java.util.List;
|
||||
public class AvatarRequest extends UriImageRequest<AvatarRequestDescriptor> {
|
||||
private static Bitmap sDefaultPersonBitmap;
|
||||
private static Bitmap sDefaultPersonBitmapLarge;
|
||||
private TypedArray mColors;
|
||||
|
||||
public AvatarRequest(final Context context,
|
||||
final AvatarRequestDescriptor descriptor) {
|
||||
super(context, descriptor);
|
||||
mColors = mContext.getResources().obtainTypedArray(R.array.letter_tile_colors);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -116,7 +120,7 @@ public class AvatarRequest extends UriImageRequest<AvatarRequestDescriptor> {
|
||||
|
||||
private Bitmap renderDefaultAvatar(final int width, final int height) {
|
||||
final Bitmap bitmap = getBitmapPool().createOrReuseBitmap(width, height,
|
||||
getBackgroundColor());
|
||||
getBackgroundColor(AvatarUriUtil.getIdentifier(mDescriptor.uri)));
|
||||
final Canvas canvas = new Canvas(bitmap);
|
||||
|
||||
if (sDefaultPersonBitmap == null) {
|
||||
@@ -158,7 +162,7 @@ public class AvatarRequest extends UriImageRequest<AvatarRequestDescriptor> {
|
||||
final float halfHeight = height / 2;
|
||||
final int minOfWidthAndHeight = Math.min(width, height);
|
||||
final Bitmap bitmap = getBitmapPool().createOrReuseBitmap(width, height,
|
||||
getBackgroundColor());
|
||||
getBackgroundColor(AvatarUriUtil.getIdentifier(mDescriptor.uri)));
|
||||
final Resources resources = mContext.getResources();
|
||||
final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||
paint.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
|
||||
@@ -178,8 +182,15 @@ public class AvatarRequest extends UriImageRequest<AvatarRequestDescriptor> {
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
private int getBackgroundColor() {
|
||||
return mContext.getResources().getColor(R.color.primary_color);
|
||||
private int getBackgroundColor(final String identifier) {
|
||||
if (!TextUtils.isEmpty(identifier) &&
|
||||
mContext.getResources().getBoolean(R.bool.contact_colors)) {
|
||||
int idcolor = Math.abs(identifier.hashCode()) % mColors.length();
|
||||
return mColors.getColor(idcolor,
|
||||
mContext.getResources().getColor(R.color.primary_color));
|
||||
} else {
|
||||
return mContext.getResources().getColor(R.color.primary_color);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user