Merge "Import translations. DO NOT MERGE" into ub-contactsdialer-i-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0b24489..57ef720 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.android.contacts"
-          android:versionCode="10703"
-          android:versionName="1.7.3">
+          android:versionCode="10704"
+          android:versionName="1.7.4">
 
     <uses-sdk
         android:minSdkVersion="21"
@@ -183,7 +183,8 @@
             android:launchMode="singleTop"
             android:theme="@style/ContactPickerTheme"
             android:uiOptions="splitActionBarWhenNarrow"
-            android:windowSoftInputMode="adjustResize">
+            android:windowSoftInputMode="adjustResize"
+            android:visibleToInstantApps="true">
             <intent-filter>
                 <action android:name="android.intent.action.INSERT_OR_EDIT"/>
                 <category android:name="android.intent.category.DEFAULT"/>
diff --git a/src/com/android/contacts/list/ShortcutIntentBuilder.java b/src/com/android/contacts/list/ShortcutIntentBuilder.java
index d7ac53a..235e9f7 100644
--- a/src/com/android/contacts/list/ShortcutIntentBuilder.java
+++ b/src/com/android/contacts/list/ShortcutIntentBuilder.java
@@ -46,6 +46,7 @@
 import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
+import com.android.contacts.util.BitmapUtil;
 import com.android.contacts.util.ImplicitIntentsUtil;
 
 /**
@@ -356,8 +357,10 @@
         final Resources r = mContext.getResources();
         final float density = r.getDisplayMetrics().density;
 
-        Bitmap phoneIcon = ((BitmapDrawable) r.getDrawableForDensity(actionResId, mIconDensity))
-                .getBitmap();
+        final Drawable phoneDrawable = r.getDrawableForDensity(actionResId, mIconDensity);
+        // These icons have the same height and width so either is fine for the size.
+        final Bitmap phoneIcon =
+                BitmapUtil.drawableToBitmap(phoneDrawable, phoneDrawable.getIntrinsicHeight());
 
         Bitmap icon = generateQuickContactIcon(photo);
         Canvas canvas = new Canvas(icon);
diff --git a/src/com/android/contacts/util/BitmapUtil.java b/src/com/android/contacts/util/BitmapUtil.java
index 5512962..0bc4aef 100644
--- a/src/com/android/contacts/util/BitmapUtil.java
+++ b/src/com/android/contacts/util/BitmapUtil.java
@@ -161,4 +161,21 @@
         canvas.drawBitmap(input, src, dst, paint);
         return result;
     }
+
+    /**
+     * Converts a drawable to a bitmap.
+     */
+    public static Bitmap drawableToBitmap(Drawable drawable, int avatarSizePx) {
+        if (drawable instanceof BitmapDrawable) {
+            return ((BitmapDrawable) drawable).getBitmap();
+        }
+
+        final Bitmap bitmap =
+                Bitmap.createBitmap(avatarSizePx, avatarSizePx, Bitmap.Config.ARGB_8888);
+
+        final Canvas canvas = new Canvas(bitmap);
+        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+        drawable.draw(canvas);
+        return bitmap;
+    }
 }