Use larger version of ic_contact_picture in calls

Closes #4971
Fixes #4245
// FREEBIE
This commit is contained in:
haffenloher
2015-12-27 01:34:44 +01:00
committed by Moxie Marlinspike
parent 1e2a45d440
commit 1abf39685a
9 changed files with 35 additions and 22 deletions

View File

@@ -18,13 +18,20 @@
package org.thoughtcrime.redphone.ui;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.provider.ContactsContract;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.ContactPhotoFactory;
import org.thoughtcrime.securesms.recipients.Recipient;
/**
@@ -62,8 +69,25 @@ public class CallCard extends LinearLayout {
this.elapsedTime.setText(time);
}
private void setPersonInfo(Recipient recipient) {
this.photo.setImageDrawable(recipient.getContactPhoto().asCallCard(getContext()));
private void setPersonInfo(final Recipient recipient) {
final Context context = getContext();
new AsyncTask<Void, Void, ContactPhoto>() {
@Override
protected ContactPhoto doInBackground(Void... params) {
DisplayMetrics metrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Uri contentUri = ContactsContract.Contacts.lookupContact(context.getContentResolver(),
recipient.getContactUri());
windowManager.getDefaultDisplay().getMetrics(metrics);
return ContactPhotoFactory.getContactPhoto(context, contentUri, null, metrics.widthPixels);
}
@Override
protected void onPostExecute(final ContactPhoto contactPhoto) {
CallCard.this.photo.setImageDrawable(contactPhoto.asCallCard(context));
}
}.execute();
this.name.setText(recipient.getName());
this.phoneNumber.setText(recipient.getNumber());
}

View File

@@ -37,8 +37,12 @@ public class ContactPhotoFactory {
}
public static ContactPhoto getContactPhoto(Context context, Uri uri, String name) {
int targetSize = context.getResources().getDimensionPixelSize(R.dimen.contact_photo_target_size);
return getContactPhoto(context, uri, name, targetSize);
}
public static ContactPhoto getContactPhoto(Context context, Uri uri, String name, int targetSize) {
try {
int targetSize = context.getResources().getDimensionPixelSize(R.dimen.contact_photo_target_size);
Bitmap bitmap = Glide.with(context)
.load(new ContactPhotoUri(uri)).asBitmap()
.centerCrop().into(targetSize, targetSize).get();

View File

@@ -48,6 +48,6 @@ public class GeneratedContactPhoto implements ContactPhoto {
@Override
public Drawable asCallCard(Context context) {
return ContextCompat.getDrawable(context, R.drawable.ic_contact_picture);
return ContextCompat.getDrawable(context, R.drawable.ic_contact_picture_large);
}
}