/** * Saves the contact photo - if present - to a file in private storage and makes sure the object * can provide a URI for it. */ public void preparePhotoUri(Context context) { if (photo == null) return; Bitmap bitmapOriginal = BitmapFactory.decodeByteArray(photo, 0, photo.length); if (bitmapOriginal == null) return; photoUri = AddressBookProvider.storeBitmap(context, bitmapOriginal); }
public static FindNearbyContact lookupUserRecord( ContentResolver contentResolver, Configuration configuration, String bitcoinAddress) { FindNearbyContact record = null; String name = configuration.getFindNearbyUserName(); Uri photoUri = configuration.getFindNearbyUserPhoto(); byte[] photo = null; if (photoUri != null) { try { Bitmap bitmap = MediaStore.Images.Media.getBitmap(contentResolver, photoUri); Bitmap scaledBitmap = AddressBookProvider.ensureReasonableSize(bitmap); if (scaledBitmap == null) throw new IOException(); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); scaledBitmap.compress(CompressFormat.PNG, 100, outStream); photo = outStream.toByteArray(); } catch (FileNotFoundException ignored) { } catch (IOException ignored) { } } record = new FindNearbyContact(bitcoinAddress, name, photo); return record; }