Get high res version of contact photo

This commit is contained in:
Dominik Schürmann 2015-03-04 15:39:41 +01:00
parent 502a0b5376
commit b662ff6c49
3 changed files with 7 additions and 6 deletions

View File

@ -821,7 +821,7 @@ public class ViewKeyActivity extends BaseActivity implements
AsyncTask<Long, Void, Bitmap> photoTask = AsyncTask<Long, Void, Bitmap> photoTask =
new AsyncTask<Long, Void, Bitmap>() { new AsyncTask<Long, Void, Bitmap>() {
protected Bitmap doInBackground(Long... mMasterKeyId) { protected Bitmap doInBackground(Long... mMasterKeyId) {
return ContactHelper.photoFromMasterKeyId(getContentResolver(), mMasterKeyId[0]); return ContactHelper.loadPhotoByMasterKeyId(getContentResolver(), mMasterKeyId[0], true);
} }
protected void onPostExecute(Bitmap photo) { protected void onPostExecute(Bitmap photo) {

View File

@ -90,7 +90,7 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView {
} }
private void setImageByKey(ImageView view, EncryptionKey key) { private void setImageByKey(ImageView view, EncryptionKey key) {
Bitmap photo = ContactHelper.photoFromMasterKeyId(getContext().getContentResolver(), key.getKeyId()); Bitmap photo = ContactHelper.getCachedPhotoByMasterKeyId(getContext().getContentResolver(), key.getKeyId());
if (photo != null) { if (photo != null) {
view.setImageBitmap(photo); view.setImageBitmap(photo);

View File

@ -245,17 +245,18 @@ public class ContactHelper {
return null; return null;
} }
public static Bitmap photoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { public static Bitmap getCachedPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId) {
if (masterKeyId == -1) { if (masterKeyId == -1) {
return null; return null;
} }
if (!photoCache.containsKey(masterKeyId)) { if (!photoCache.containsKey(masterKeyId)) {
photoCache.put(masterKeyId, loadPhotoFromMasterKeyId(contentResolver, masterKeyId)); photoCache.put(masterKeyId, loadPhotoByMasterKeyId(contentResolver, masterKeyId, false));
} }
return photoCache.get(masterKeyId); return photoCache.get(masterKeyId);
} }
private static Bitmap loadPhotoFromMasterKeyId(ContentResolver contentResolver, long masterKeyId) { public static Bitmap loadPhotoByMasterKeyId(ContentResolver contentResolver, long masterKeyId,
boolean highRes) {
if (masterKeyId == -1) { if (masterKeyId == -1) {
return null; return null;
} }
@ -267,7 +268,7 @@ public class ContactHelper {
Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId); Uri rawContactUri = ContentUris.withAppendedId(ContactsContract.RawContacts.CONTENT_URI, rawContactId);
Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(contentResolver, rawContactUri); Uri contactUri = ContactsContract.RawContacts.getContactLookupUri(contentResolver, rawContactUri);
InputStream photoInputStream = InputStream photoInputStream =
ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri); ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, contactUri, highRes);
if (photoInputStream == null) { if (photoInputStream == null) {
return null; return null;
} }