Merge "Move dataItemToEntry() off UI thread" into lmp-dev
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 511f686..73329b3 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -67,6 +67,7 @@
         <item name="android:colorPrimaryDark">@color/primary_color_dark</item>
         <item name="android:colorPrimary">@color/primary_color</item>
         <item name="android:colorAccent">@color/primary_color</item>
+        <item name="android:alertDialogTheme">@style/ContactsAlertDialogTheme</item>
         <item name="list_item_height">?android:attr/listPreferredItemHeight</item>
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
@@ -295,4 +296,10 @@
         <item name="android:textColor">#363636</item>
         <item name="android:fontFamily">sans-serif</item>
     </style>
+
+    <!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
+        since the Alert dialog is private. They are identical anyway. -->
+    <style name="ContactsAlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+        <item name="android:colorAccent">@color/primary_color</item>
+    </style>
 </resources>
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index 226909e..e926e54 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -17,15 +17,13 @@
 package com.android.contacts.util;
 
 import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.TransitionDrawable;
-import android.provider.ContactsContract.DisplayNameSources;
+import android.media.ThumbnailUtils;
 import android.text.TextUtils;
-import android.util.Log;
 import android.widget.ImageView;
 
 import com.android.contacts.common.ContactPhotoManager;
@@ -161,8 +159,13 @@
     }
 
     private BitmapDrawable decodedBitmapDrawable(byte[] compressed) {
-        Resources rsrc = mTarget.getResources();
+        final Resources rsrc = mTarget.getResources();
         Bitmap bitmap = BitmapFactory.decodeByteArray(compressed, 0, compressed.length);
+        if (bitmap.getHeight() != bitmap.getWidth()) {
+            // Crop the bitmap into a square.
+            final int size = Math.min(bitmap.getWidth(), bitmap.getHeight());
+            bitmap = ThumbnailUtils.extractThumbnail(bitmap, size, size);
+        }
         return new BitmapDrawable(rsrc, bitmap);
     }
 }