Use new ContactPhotoManager APIs for default avatars in Contacts
*Update the following uses of ContactPhotoManager.loadPhoto
and ContactPhotoManager.loadThumbnail
GroupEditorFragment
EmailAddressListAdapter
PostalAddressListAdapter
*Replace the following uses of R.drawable.ic_contact_picture_holo_light and
ContactPhotoManager.getDefaultAvatarResId with
ContactPhotoManager.getDefaultAvatarDrawableForContact
PhotoEditorView
AggregationSuggestionView
SuggestedMemberListAdapter
ConfirmAddDetailActivity
ImageViewDrawableSetter
*Protect against a null drawable in TransformableImageView()
*Add lookup fields to cursor projections in EmailAddressListAdapter
and PostalAddressListAdapter to correct construct a DefaultImageRequest
and assign LetterTileDrawables for contact photos
Bug: 13101785
Change-Id: I9c04ce81192913bf3c398a9a7a9368861bd93b59
(cherry picked from commit f677450d82e7b961fda2a18fea2ad51e88437e8b)
diff --git a/res/layout/confirm_add_detail_activity.xml b/res/layout/confirm_add_detail_activity.xml
index 8826b62..e26c917 100644
--- a/res/layout/confirm_add_detail_activity.xml
+++ b/res/layout/confirm_add_detail_activity.xml
@@ -33,8 +33,7 @@
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:scaleType="centerCrop"
- android:src="@drawable/ic_contact_picture_180_holo_light" />
+ android:scaleType="centerCrop"/>
<View
android:id="@+id/photo_text_bar"
diff --git a/res/layout/item_photo_editor.xml b/res/layout/item_photo_editor.xml
index 0a7f557..48af96c 100644
--- a/res/layout/item_photo_editor.xml
+++ b/res/layout/item_photo_editor.xml
@@ -29,7 +29,6 @@
android:id="@+id/photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:src="@drawable/ic_contact_picture_holo_light"
android:cropToPadding="true"
android:scaleType="centerCrop"
android:gravity="start"
diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
index 3f9116f..e613ec1 100644
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
@@ -62,6 +62,8 @@
import com.android.contacts.editor.Editor;
import com.android.contacts.editor.EditorUiUtils;
import com.android.contacts.editor.ViewIdGenerator;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.RawContact;
import com.android.contacts.common.model.RawContactDelta;
@@ -121,6 +123,7 @@
private Uri mContactUri;
private long mContactId;
private String mDisplayName;
+ private String mLookupKey;
private boolean mIsReadOnly;
private QueryHandler mQueryHandler;
@@ -268,6 +271,9 @@
// Retrieve references to all the Views in the dialog activity.
mDisplayNameView = (TextView) findViewById(R.id.name);
mPhotoView = (ImageView) findViewById(R.id.photo);
+ mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
+ getResources(), false, null));
+
mEditorContainerView = (ViewGroup) findViewById(R.id.editor_container);
resetAsyncQueryHandler();
@@ -479,6 +485,8 @@
if (cursor != null && cursor.moveToFirst()) {
// Get the cursor values
mDisplayName = cursor.getString(ContactQuery.DISPLAY_NAME);
+ mLookupKey = cursor.getString(ContactQuery.LOOKUP_KEY);
+ setDefaultContactImage(mDisplayName, mLookupKey);
final long photoId = cursor.getLong(ContactQuery.PHOTO_ID);
// If there is no photo ID, then do a disambiguation
@@ -489,8 +497,7 @@
startDisambiguationQuery(mDisplayName);
} else {
// Otherwise do the photo query.
- Uri lookupUri = Contacts.getLookupUri(mContactId,
- cursor.getString(ContactQuery.LOOKUP_KEY));
+ Uri lookupUri = Contacts.getLookupUri(mContactId, mLookupKey);
startPhotoQuery(photoId, lookupUri);
// Display the name because there is no
// disambiguation query.
@@ -737,6 +744,11 @@
extraTextView.setText(value);
}
+ private void setDefaultContactImage(String displayName, String lookupKey) {
+ mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
+ getResources(), false, new DefaultImageRequest(displayName, lookupKey)));
+ }
+
/**
* Shows all the contents of the dialog to the user at one time. This should only be called
* once all the queries have completed, otherwise the screen will flash as additional data
diff --git a/src/com/android/contacts/activities/PhotoSelectionActivity.java b/src/com/android/contacts/activities/PhotoSelectionActivity.java
index 20892d6..c3b2eeb 100644
--- a/src/com/android/contacts/activities/PhotoSelectionActivity.java
+++ b/src/com/android/contacts/activities/PhotoSelectionActivity.java
@@ -28,7 +28,6 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
-import android.support.v4.content.FileProvider;
import android.view.View;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.FrameLayout.LayoutParams;
@@ -40,13 +39,8 @@
import com.android.contacts.detail.PhotoSelectionHandler;
import com.android.contacts.editor.PhotoActionPopup;
import com.android.contacts.common.model.RawContactDeltaList;
-import com.android.contacts.util.ContactPhotoUtils;
import com.android.contacts.util.SchedulingUtils;
-import java.io.File;
-import java.io.FileNotFoundException;
-
-
/**
* Popup activity for choosing a contact photo within the Contacts app.
*/
@@ -184,6 +178,7 @@
mBackdrop = findViewById(R.id.backdrop);
mPhotoView = (ImageView) findViewById(R.id.photo);
+
mSourceBounds = intent.getSourceBounds();
// Fade in the background.
@@ -324,11 +319,11 @@
if (mPhotoUri != null) {
// If we have a URI, the bitmap should be cached directly.
ContactPhotoManager.getInstance(this).loadPhoto(mPhotoView, mPhotoUri, photoWidth,
- false);
+ false, null);
} else {
- // Fall back to avatar image.
- mPhotoView.setImageResource(ContactPhotoManager.getDefaultAvatarResId(this, photoWidth,
- false));
+ // If we don't have a URI, just display an empty ImageView. The default image from the
+ // ContactDetailFragment will show up in the background instead.
+ mPhotoView.setImageDrawable(null);
}
mPhotoView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
diff --git a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
index e1aa217..5adc57a 100644
--- a/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
+++ b/src/com/android/contacts/detail/ContactDetailDisplayUtils.java
@@ -236,8 +236,7 @@
setDataOrHideIfNone(snippet, statusView);
if (photoUri != null) {
ContactPhotoManager.getInstance(context).loadPhoto(
- statusPhotoView, Uri.parse(photoUri), -1, false,
- ContactPhotoManager.DEFAULT_BLANK);
+ statusPhotoView, Uri.parse(photoUri), -1, false, null);
statusPhotoView.setVisibility(View.VISIBLE);
} else {
statusPhotoView.setVisibility(View.GONE);
@@ -342,7 +341,7 @@
pushLayerView.setEnabled(false);
}
contactPhotoManager.loadPhoto(imageView, Uri.parse(streamItemPhoto.getPhotoUri()), -1,
- false, ContactPhotoManager.DEFAULT_BLANK);
+ false, null);
}
@VisibleForTesting
diff --git a/src/com/android/contacts/detail/ContactDetailPhotoSetter.java b/src/com/android/contacts/detail/ContactDetailPhotoSetter.java
index 112621a..437de45 100644
--- a/src/com/android/contacts/detail/ContactDetailPhotoSetter.java
+++ b/src/com/android/contacts/detail/ContactDetailPhotoSetter.java
@@ -38,8 +38,7 @@
public class ContactDetailPhotoSetter extends ImageViewDrawableSetter {
public OnClickListener setupContactPhotoForClick(Context context, Contact contactData,
ImageView photoView, boolean expandPhotoOnClick) {
- setTarget(photoView);
- Bitmap bitmap = setCompressedImage(contactData.getPhotoBinaryData());
+ Bitmap bitmap = setupContactPhoto(contactData, photoView);
return setupClickListener(context, contactData, bitmap, expandPhotoOnClick);
}
diff --git a/src/com/android/contacts/detail/TransformableImageView.java b/src/com/android/contacts/detail/TransformableImageView.java
index 241df41..1eb35aa 100644
--- a/src/com/android/contacts/detail/TransformableImageView.java
+++ b/src/com/android/contacts/detail/TransformableImageView.java
@@ -40,6 +40,9 @@
@Override
protected void onDraw(Canvas canvas) {
+ if (getDrawable() == null) {
+ return;
+ }
int saveCount = canvas.getSaveCount();
canvas.save();
canvas.translate(mPaddingLeft, mPaddingTop);
diff --git a/src/com/android/contacts/editor/AggregationSuggestionView.java b/src/com/android/contacts/editor/AggregationSuggestionView.java
index 439b1df..a3d04e4 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionView.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionView.java
@@ -28,8 +28,10 @@
import com.android.contacts.R;
import com.android.contacts.editor.AggregationSuggestionEngine.RawContact;
import com.android.contacts.editor.AggregationSuggestionEngine.Suggestion;
+import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountType;
+
import com.google.common.collect.Lists;
import java.util.ArrayList;
@@ -86,7 +88,8 @@
photo.setImageBitmap(BitmapFactory.decodeByteArray(
suggestion.photo, 0, suggestion.photo.length));
} else {
- photo.setImageResource(R.drawable.ic_contact_picture_holo_light);
+ photo.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
+ getResources(), false, null));
}
TextView name = (TextView) findViewById(R.id.aggregation_suggestion_name);
diff --git a/src/com/android/contacts/editor/PhotoEditorView.java b/src/com/android/contacts/editor/PhotoEditorView.java
index bee61f4..a74e159 100644
--- a/src/com/android/contacts/editor/PhotoEditorView.java
+++ b/src/com/android/contacts/editor/PhotoEditorView.java
@@ -27,6 +27,7 @@
import com.android.contacts.R;
import com.android.contacts.common.model.RawContactDelta;
+import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.dataitem.DataKind;
@@ -166,7 +167,8 @@
protected void resetDefault() {
// Invalid photo, show default "add photo" place-holder
- mPhotoImageView.setImageResource(R.drawable.ic_contact_picture_holo_light);
+ mPhotoImageView.setImageDrawable(
+ ContactPhotoManager.getDefaultAvatarDrawableForContact(getResources(), false, null));
mFrameView.setEnabled(!mReadOnly && isEnabled());
mHasSetPhoto = false;
mEntry.setFromTemplate(true);
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index acc99f4..91800f8 100644
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -64,6 +64,7 @@
import com.android.contacts.R;
import com.android.contacts.activities.GroupEditorActivity;
import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.editor.SelectAccountDialogFragment;
@@ -71,6 +72,7 @@
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
import com.android.contacts.common.util.ViewUtil;
+
import com.google.common.base.Objects;
import java.util.ArrayList;
@@ -849,11 +851,13 @@
private final Uri mLookupUri;
private final String mDisplayName;
private final Uri mPhotoUri;
+ private final String mLookupKey;
public Member(long rawContactId, String lookupKey, long contactId, String displayName,
String photoUri) {
mRawContactId = rawContactId;
mContactId = contactId;
+ mLookupKey = lookupKey;
mLookupUri = Contacts.getLookupUri(contactId, lookupKey);
mDisplayName = displayName;
mPhotoUri = (photoUri != null) ? Uri.parse(photoUri) : null;
@@ -871,6 +875,10 @@
return mLookupUri;
}
+ public String getLookupKey() {
+ return mLookupKey;
+ }
+
public String getDisplayName() {
return mDisplayName;
}
@@ -904,6 +912,7 @@
dest.writeLong(mRawContactId);
dest.writeLong(mContactId);
dest.writeParcelable(mLookupUri, flags);
+ dest.writeString(mLookupKey);
dest.writeString(mDisplayName);
dest.writeParcelable(mPhotoUri, flags);
}
@@ -912,6 +921,7 @@
mRawContactId = in.readLong();
mContactId = in.readLong();
mLookupUri = in.readParcelable(getClass().getClassLoader());
+ mLookupKey = in.readString();
mDisplayName = in.readString();
mPhotoUri = in.readParcelable(getClass().getClassLoader());
}
@@ -963,9 +973,10 @@
}
});
}
-
+ DefaultImageRequest request = new DefaultImageRequest(member.getDisplayName(),
+ member.getLookupKey());
mPhotoManager.loadPhoto(badge, member.getPhotoUri(),
- ViewUtil.getConstantPreLayoutWidth(badge), false);
+ ViewUtil.getConstantPreLayoutWidth(badge), false, request);
return result;
}
diff --git a/src/com/android/contacts/group/SuggestedMemberListAdapter.java b/src/com/android/contacts/group/SuggestedMemberListAdapter.java
index 6d60a3e..19ff611 100644
--- a/src/com/android/contacts/group/SuggestedMemberListAdapter.java
+++ b/src/com/android/contacts/group/SuggestedMemberListAdapter.java
@@ -37,6 +37,7 @@
import android.widget.TextView;
import com.android.contacts.R;
+import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.group.SuggestedMemberListAdapter.SuggestedMember;
import java.util.ArrayList;
@@ -143,7 +144,8 @@
}
byte[] byteArray = member.getPhotoByteArray();
if (byteArray == null) {
- icon.setImageResource(R.drawable.ic_contact_picture_holo_light);
+ icon.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
+ icon.getResources(), false, null));
} else {
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
icon.setImageBitmap(bitmap);
diff --git a/src/com/android/contacts/list/EmailAddressListAdapter.java b/src/com/android/contacts/list/EmailAddressListAdapter.java
index 4a32ae3..960f29a 100644
--- a/src/com/android/contacts/list/EmailAddressListAdapter.java
+++ b/src/com/android/contacts/list/EmailAddressListAdapter.java
@@ -29,6 +29,7 @@
import android.view.View;
import android.view.ViewGroup;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.list.ContactListItemView;
@@ -44,7 +45,8 @@
Email.LABEL, // 2
Email.DATA, // 3
Email.PHOTO_ID, // 4
- Email.DISPLAY_NAME_PRIMARY, // 5
+ Email.LOOKUP_KEY, // 5
+ Email.DISPLAY_NAME_PRIMARY, // 6
};
private static final String[] PROJECTION_ALTERNATIVE = new String[] {
@@ -53,7 +55,8 @@
Email.LABEL, // 2
Email.DATA, // 3
Email.PHOTO_ID, // 4
- Email.DISPLAY_NAME_ALTERNATIVE, // 5
+ Email.LOOKUP_KEY, // 5
+ Email.DISPLAY_NAME_ALTERNATIVE, // 6
};
public static final int EMAIL_ID = 0;
@@ -61,7 +64,8 @@
public static final int EMAIL_LABEL = 2;
public static final int EMAIL_ADDRESS = 3;
public static final int EMAIL_PHOTO_ID = 4;
- public static final int EMAIL_DISPLAY_NAME = 5;
+ public static final int EMAIL_LOOKUP_KEY = 5;
+ public static final int EMAIL_DISPLAY_NAME = 6;
}
private final CharSequence mUnknownNameText;
@@ -175,8 +179,12 @@
if (!cursor.isNull(EmailQuery.EMAIL_PHOTO_ID)) {
photoId = cursor.getLong(EmailQuery.EMAIL_PHOTO_ID);
}
-
- getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false);
+ DefaultImageRequest request = null;
+ if (photoId == 0) {
+ request = getDefaultImageRequestFromCursor(cursor, EmailQuery.EMAIL_DISPLAY_NAME,
+ EmailQuery.EMAIL_LOOKUP_KEY);
+ }
+ getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
}
//
// protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/list/PostalAddressListAdapter.java b/src/com/android/contacts/list/PostalAddressListAdapter.java
index a800c00..42c73bc 100644
--- a/src/com/android/contacts/list/PostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/PostalAddressListAdapter.java
@@ -28,6 +28,7 @@
import android.view.View;
import android.view.ViewGroup;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.list.ContactListItemView;
@@ -43,7 +44,8 @@
StructuredPostal.LABEL, // 2
StructuredPostal.DATA, // 3
StructuredPostal.PHOTO_ID, // 4
- StructuredPostal.DISPLAY_NAME_PRIMARY, // 5
+ StructuredPostal.LOOKUP_KEY, // 5
+ StructuredPostal.DISPLAY_NAME_PRIMARY, // 6
};
private static final String[] PROJECTION_ALTERNATIVE = new String[] {
@@ -52,7 +54,8 @@
StructuredPostal.LABEL, // 2
StructuredPostal.DATA, // 3
StructuredPostal.PHOTO_ID, // 4
- StructuredPostal.DISPLAY_NAME_ALTERNATIVE, // 5
+ StructuredPostal.LOOKUP_KEY, // 5
+ StructuredPostal.DISPLAY_NAME_ALTERNATIVE, // 6
};
public static final int POSTAL_ID = 0;
@@ -60,7 +63,8 @@
public static final int POSTAL_LABEL = 2;
public static final int POSTAL_ADDRESS = 3;
public static final int POSTAL_PHOTO_ID = 4;
- public static final int POSTAL_DISPLAY_NAME = 5;
+ public static final int POSTAL_LOOKUP_KEY = 5;
+ public static final int POSTAL_DISPLAY_NAME = 6;
}
private final CharSequence mUnknownNameText;
@@ -166,7 +170,13 @@
photoId = cursor.getLong(PostalQuery.POSTAL_PHOTO_ID);
}
- getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false);
+ DefaultImageRequest request = null;
+ if (photoId == 0) {
+ request = getDefaultImageRequestFromCursor(cursor, PostalQuery.POSTAL_DISPLAY_NAME,
+ PostalQuery.POSTAL_LOOKUP_KEY);
+ }
+
+ getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
}
//
// protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/util/ContactBadgeUtil.java b/src/com/android/contacts/util/ContactBadgeUtil.java
index 82a6820..fe792d7 100644
--- a/src/com/android/contacts/util/ContactBadgeUtil.java
+++ b/src/com/android/contacts/util/ContactBadgeUtil.java
@@ -110,6 +110,6 @@
public static Bitmap loadDefaultAvatarPhoto(Context context, boolean hires, boolean darkTheme) {
return BitmapFactory.decodeResource(context.getResources(),
- ContactPhotoManager.getDefaultAvatarResId(hires, darkTheme));
+ R.drawable.ic_contacts_holo_dark);
}
}
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index a189f58..4dfa66c 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -23,10 +23,14 @@
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
+import android.provider.ContactsContract.DisplayNameSources;
+import android.text.TextUtils;
import android.util.Log;
import android.widget.ImageView;
import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.contacts.common.model.Contact;
import java.util.Arrays;
@@ -40,6 +44,7 @@
private byte[] mCompressed;
private Drawable mPreviousDrawable;
private int mDurationInMillis = 0;
+ private Contact mContact;
private static final String TAG = "ImageViewDrawableSetter";
public ImageViewDrawableSetter() {
@@ -49,9 +54,10 @@
mTarget = target;
}
- public void setupContactPhoto(Contact contactData, ImageView photoView) {
+ public Bitmap setupContactPhoto(Contact contactData, ImageView photoView) {
+ mContact = contactData;
setTarget(photoView);
- setCompressedImage(contactData.getPhotoBinaryData());
+ return setCompressedImage(contactData.getPhotoBinaryData());
}
public void setTransitionDuration(int durationInMillis) {
@@ -122,23 +128,33 @@
}
private Bitmap previousBitmap() {
- return (mPreviousDrawable == null)
- ? null
+ return (mPreviousDrawable == null) ? null
+ : mPreviousDrawable instanceof LetterTileDrawable ? null
: ((BitmapDrawable) mPreviousDrawable).getBitmap();
}
/**
- * Obtain the default drawable for a contact when no photo is available.
+ * Obtain the default drawable for a contact when no photo is available. If this is a local
+ * contact, then use the contact's display name and lookup key (as a unique identifier) to
+ * retrieve a default drawable for this contact. If not, then use the name as the contact
+ * identifier instead.
*/
private Drawable defaultDrawable() {
Resources resources = mTarget.getResources();
- final int resId = ContactPhotoManager.getDefaultAvatarResId(true, false);
- try {
- return resources.getDrawable(resId);
- } catch (NotFoundException e) {
- Log.wtf(TAG, "Cannot load default avatar resource.");
- return null;
+ DefaultImageRequest request;
+ int contactType = ContactPhotoManager.TYPE_DEFAULT;
+
+ if (mContact.isDisplayNameFromOrganization()) {
+ contactType = ContactPhotoManager.TYPE_BUSINESS;
}
+
+ if (TextUtils.isEmpty(mContact.getLookupKey())) {
+ request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType);
+ } else {
+ request = new DefaultImageRequest(mContact.getDisplayName(), mContact.getLookupKey(),
+ contactType);
+ }
+ return ContactPhotoManager.getDefaultAvatarDrawableForContact(resources, true, request);
}
private BitmapDrawable decodedBitmapDrawable(byte[] compressed) {
@@ -146,5 +162,4 @@
Bitmap bitmap = BitmapFactory.decodeByteArray(compressed, 0, compressed.length);
return new BitmapDrawable(rsrc, bitmap);
}
-
}