Add photo icon to emergency contacts

Change-Id: I45052dce77a130a0d77345ec228ae83fd7f9b4c7
diff --git a/src/com/android/emergency/EmergencyContactManager.java b/src/com/android/emergency/EmergencyContactManager.java
index a295dc2..1ee9e20 100644
--- a/src/com/android/emergency/EmergencyContactManager.java
+++ b/src/com/android/emergency/EmergencyContactManager.java
@@ -19,10 +19,13 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.provider.ContactsContract;
 import android.util.ArraySet;
 
+import java.io.ByteArrayInputStream;
 import java.util.Collections;
 import java.util.Set;
 
@@ -143,6 +146,29 @@
         return null;
     }
 
+    /** Returns the Bitmap corresponding to the contact's photo. */
+    public static Bitmap getContactPhoto(Context context, Uri contactUri) {
+        Uri photoUri = Uri.withAppendedPath(contactUri,
+                ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
+        Cursor cursor = context.getContentResolver().query(photoUri,
+                new String[]{ContactsContract.Contacts.Photo.PHOTO}, null, null, null);
+        if (cursor == null) {
+            return null;
+        }
+        try {
+            if (cursor.moveToFirst()) {
+                byte[] data = cursor.getBlob(0);
+                if (data != null) {
+                    return BitmapFactory.decodeStream(new ByteArrayInputStream(data));
+                }
+            }
+        } finally {
+            cursor.close();
+        }
+        return null;
+    }
+
+
     /** Returns whether the contact uri is not null and corresponds to an existing contact. */
     private boolean isValidEmergencyContact(Uri contactUri) {
         return contactUri != null && contactExists(mContext, contactUri);