@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != Activity.RESULT_OK) { return; } Uri contactData; switch (requestCode) { case PICK_CONTACT: contactData = data.getData(); updateContactWithSelection(contactData); break; case REQUEST_CROP_PHOTO: if (mUriOfSelected == null) { break; } ContentResolver resolver = getContentResolver(); Cursor cursor = resolver.query( mUriOfSelected, new String[] {Results.CONTACT_ID, Results.PIC_URL, Results.LOOKUP_KEY}, null, null, null); ResultsListAdapter adapter = (ResultsListAdapter) mListview.getAdapter(); if (cursor.moveToFirst()) { String id = cursor.getString(cursor.getColumnIndex(Results.CONTACT_ID)); String url = cursor.getString(cursor.getColumnIndex(Results.PIC_URL)); String lookup = cursor.getString(cursor.getColumnIndex(Results.LOOKUP_KEY)); Bitmap bitmap = (Bitmap) data.getParcelableExtra("data"); if (bitmap != null) { byte[] bytes = Utils.bitmapToPNG(bitmap); mContactUtils.updatePhoto(getContentResolver(), bytes, id, true); mDbHelper.updateHashes(id, lookup, null, bytes); mCache.add(url, bitmap); adapter.notifyDataSetChanged(); } } cursor.close(); break; } }
private void unlink(String id, boolean purge) { if (id == null) { return; } final ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put(Results.DESCRIPTION, getString(R.string.resultsdescription_notfound)); values.putNull(Results.CONTACT_ID); resolver.update(Results.CONTENT_URI, values, Results.CONTACT_ID + "=" + id, null); if (purge) { mDbHelper.deletePicture(id); resolver.delete(Uri.withAppendedPath(SyncMyPix.Contacts.CONTENT_URI, id), null, null); } }