Fix NPE in decodedBitmapDrawable

Check for whether bitmap was successfully decoded from byte array.

Bug:18508529
Change-Id: If5c1bb3f0b726be5891d5b33d8bc7073cf40b108
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index e926e54..6147c39 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -97,9 +97,10 @@
             return previousBitmap();
         }
 
-        final Drawable newDrawable = (compressed == null)
-                ? defaultDrawable()
-                : decodedBitmapDrawable(compressed);
+        Drawable newDrawable = decodedBitmapDrawable(compressed);
+        if (newDrawable == null) {
+            newDrawable = defaultDrawable();
+        }
 
         // Remember this for next time, so that we can check if it changed.
         mCompressed = compressed;
@@ -159,8 +160,14 @@
     }
 
     private BitmapDrawable decodedBitmapDrawable(byte[] compressed) {
+        if (compressed == null) {
+            return null;
+        }
         final Resources rsrc = mTarget.getResources();
         Bitmap bitmap = BitmapFactory.decodeByteArray(compressed, 0, compressed.length);
+        if (bitmap == null) {
+            return null;
+        }
         if (bitmap.getHeight() != bitmap.getWidth()) {
             // Crop the bitmap into a square.
             final int size = Math.min(bitmap.getWidth(), bitmap.getHeight());