vcard: prevent NPE when vcard has an empty photo

Change-Id: If7d0206eef39a4d309ccaf9a37625feaad008c84
Tuleap: #1143
diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ContactDetailsTask.java b/ring-android/app/src/main/java/cx/ring/adapters/ContactDetailsTask.java
index 392ec87..9e6d5f4 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/ContactDetailsTask.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/ContactDetailsTask.java
@@ -153,7 +153,15 @@
 
         if (vcard != null && !vcard.getPhotos().isEmpty()) {
             Photo tmp = vcard.getPhotos().get(0);
-            externalBMP = CropImageUtils.cropImageToCircle(tmp.getData());
+            Bitmap croppedBitmap;
+            if (tmp != null && tmp.getData() != null) {
+                croppedBitmap = CropImageUtils.cropImageToCircle(tmp.getData());
+            } else {
+                croppedBitmap = decodeSampledBitmapFromResource(mContext.getResources(), R.drawable.ic_contact_picture, mViewWidth, mViewHeight);
+            }
+
+            externalBMP = croppedBitmap != null ? croppedBitmap : decodeSampledBitmapFromResource(mContext.getResources(), R.drawable.ic_contact_picture, mViewWidth, mViewHeight);
+
         } else {
             Bitmap photoBmp;
             try {
diff --git a/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java
index 66804fd..2247cea 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java
@@ -138,10 +138,14 @@
     }
 
     public class ViewHolder {
-        @BindView(R.id.conv_participant) TextView convParticipants;
-        @BindView(R.id.conv_last_item) TextView convStatus;
-        @BindView(R.id.conv_last_time) TextView convTime;
-        @BindView(R.id.photo) ImageView photo;
+        @BindView(R.id.conv_participant)
+        TextView convParticipants;
+        @BindView(R.id.conv_last_item)
+        TextView convStatus;
+        @BindView(R.id.conv_last_time)
+        TextView convTime;
+        @BindView(R.id.photo)
+        ImageView photo;
         int position;
         public Conversation conv;
 
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
index f7de4e6..7f4ee62 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
@@ -949,7 +949,12 @@
 
         if (!vcard.getPhotos().isEmpty()) {
             Photo tmp = vcard.getPhotos().get(0);
-            contactBubbleView.setImageBitmap(CropImageUtils.cropImageToCircle(tmp.getData()));
+            if(tmp.getData() != null) {
+                contactBubbleView.setImageBitmap(CropImageUtils.cropImageToCircle(tmp.getData()));
+            }
+            else{
+                setDefaultPhoto();
+            }
         } else {
             setDefaultPhoto();
         }
diff --git a/ring-android/app/src/main/java/cx/ring/utils/CropImageUtils.java b/ring-android/app/src/main/java/cx/ring/utils/CropImageUtils.java
index 98d2bc0..4fb8bc3 100644
--- a/ring-android/app/src/main/java/cx/ring/utils/CropImageUtils.java
+++ b/ring-android/app/src/main/java/cx/ring/utils/CropImageUtils.java
@@ -36,7 +36,11 @@
     @Nullable
     public static Bitmap cropImageToCircle(@NonNull byte[] bArray) {
         Bitmap bitmap = BitmapFactory.decodeByteArray(bArray, 0, bArray.length);
-        return cropImageToCircle(bitmap);
+        if (bitmap != null) {
+            return cropImageToCircle(bitmap);
+        }
+
+        return null;
     }
 
     @Nullable