Improved contact's picture update from camera
This commit is contained in:
parent
f763bfb726
commit
436c2bf3c6
2 changed files with 27 additions and 3 deletions
|
@ -34,12 +34,14 @@ import android.app.Dialog;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.database.Cursor;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
import android.provider.ContactsContract.DisplayPhoto;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
|
@ -372,10 +374,31 @@ public class ContactEditorFragment extends Fragment {
|
||||||
image = BitmapFactory.decodeFile(filePath);
|
image = BitmapFactory.decodeFile(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bitmap scaledPhoto;
|
||||||
|
int size = getThumbnailSize();
|
||||||
|
if (size > 0) {
|
||||||
|
scaledPhoto = Bitmap.createScaledBitmap(image, size, size, false);
|
||||||
|
} else {
|
||||||
|
scaledPhoto = Bitmap.createBitmap(image);
|
||||||
|
}
|
||||||
|
image.recycle();
|
||||||
|
|
||||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||||
image.compress(Bitmap.CompressFormat.PNG , 75, stream);
|
scaledPhoto.compress(Bitmap.CompressFormat.PNG , 0, stream);
|
||||||
|
contactPicture.setImageBitmap(scaledPhoto);
|
||||||
photoToAdd = stream.toByteArray();
|
photoToAdd = stream.toByteArray();
|
||||||
contactPicture.setImageBitmap(image);
|
}
|
||||||
|
|
||||||
|
private int getThumbnailSize() {
|
||||||
|
int value = -1;
|
||||||
|
Cursor c = LinphoneActivity.instance().getContentResolver().query(DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI, new String[] { DisplayPhoto.THUMBNAIL_MAX_DIM }, null, null, null);
|
||||||
|
try {
|
||||||
|
c.moveToFirst();
|
||||||
|
value = c.getInt(0);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(e);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LinearLayout initNumbersFields(final LinphoneContact contact) {
|
private LinearLayout initNumbersFields(final LinphoneContact contact) {
|
||||||
|
|
|
@ -144,6 +144,7 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
|
||||||
.withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
|
.withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
|
||||||
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
|
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
|
||||||
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, photo)
|
.withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, photo)
|
||||||
|
.withValue(ContactsContract.Data.IS_PRIMARY, 1)
|
||||||
.withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
|
.withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
|
||||||
.build());
|
.build());
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue