Uses predefined icons for google properties in the contact card
Change-Id: Ie17444f6923cfe9708005862ad262b9445c02a01
diff --git a/res/drawable-hdpi/ic_add_to_circles_black_24.png b/res/drawable-hdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..6eb1fcc
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_to_circles_black_24.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_google_plus_24dp.png b/res/drawable-hdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..af17f2b
--- /dev/null
+++ b/res/drawable-hdpi/ic_google_plus_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_24dp.png b/res/drawable-hdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..496a2a0
--- /dev/null
+++ b/res/drawable-hdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_hangout_video_24dp.png b/res/drawable-hdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..0825a15
--- /dev/null
+++ b/res/drawable-hdpi/ic_hangout_video_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_to_circles_black_24.png b/res/drawable-mdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..fbffc97
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_to_circles_black_24.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_google_plus_24dp.png b/res/drawable-mdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..d8eacf0
--- /dev/null
+++ b/res/drawable-mdpi/ic_google_plus_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_24dp.png b/res/drawable-mdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..1b0acfd
--- /dev/null
+++ b/res/drawable-mdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_hangout_video_24dp.png b/res/drawable-mdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..b54b1cb
--- /dev/null
+++ b/res/drawable-mdpi/ic_hangout_video_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_to_circles_black_24.png b/res/drawable-xhdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..79116b5
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_to_circles_black_24.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_google_plus_24dp.png b/res/drawable-xhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..ea352d3
--- /dev/null
+++ b/res/drawable-xhdpi/ic_google_plus_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_24dp.png b/res/drawable-xhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..0cd7795
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_hangout_video_24dp.png b/res/drawable-xhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..97b984c
--- /dev/null
+++ b/res/drawable-xhdpi/ic_hangout_video_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_to_circles_black_24.png b/res/drawable-xxhdpi/ic_add_to_circles_black_24.png
new file mode 100644
index 0000000..23a2084
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_to_circles_black_24.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_google_plus_24dp.png b/res/drawable-xxhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..933cd62
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_google_plus_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_24dp.png b/res/drawable-xxhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..16858d1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..4183c76
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_hangout_video_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_google_plus_24dp.png b/res/drawable-xxxhdpi/ic_google_plus_24dp.png
new file mode 100644
index 0000000..dcd6c97
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_google_plus_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_24dp.png b/res/drawable-xxxhdpi/ic_hangout_24dp.png
new file mode 100644
index 0000000..4bfdb0d
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_hangout_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_hangout_video_24dp.png b/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
new file mode 100644
index 0000000..f1be2e7
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_hangout_video_24dp.png
Binary files differ
diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
index 46fc8cb..99738a6 100644
--- a/res/layout/expanding_entry_card_item.xml
+++ b/res/layout/expanding_entry_card_item.xml
@@ -26,11 +26,12 @@
<ImageView
android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="@dimen/expanding_entry_card_item_icon_height"
+ android:layout_height="@dimen/expanding_entry_card_item_icon_width"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
- android:layout_marginEnd="@dimen/expanding_entry_card_item_image_spacing" />
+ android:layout_marginEnd="@dimen/expanding_entry_card_item_image_spacing"
+ android:scaleType="fitCenter" />
<TextView
android:id="@+id/header"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index ce04992..0e296fe 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -186,4 +186,6 @@
<dimen name="people_activity_card_elevation">2dp</dimen>
+ <dimen name="expanding_entry_card_item_icon_height">24dp</dimen>
+ <dimen name="expanding_entry_card_item_icon_width">24dp</dimen>
</resources>
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index bd5336e..4c11e91 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -173,6 +173,13 @@
@SuppressWarnings("deprecation")
private static final String LEGACY_AUTHORITY = android.provider.Contacts.AUTHORITY;
+ private static final String MIMETYPE_GPLUS_PROFILE =
+ "vnd.android.cursor.item/vnd.googleplus.profile";
+ private static final String INTENT_DATA_GPLUS_PROFILE_ADD_TO_CIRCLE = "Add to circle";
+ private static final String MIMETYPE_HANGOUTS =
+ "vnd.android.cursor.item/vnd.googleplus.profile.comm";
+ private static final String INTENT_DATA_HANGOUTS_VIDEO = "Start video call";
+
private Uri mLookupUri;
private String[] mExcludeMimes;
private int mExtraMode;
@@ -1053,7 +1060,37 @@
intent = new Intent(Intent.ACTION_VIEW);
final Uri uri = ContentUris.withAppendedId(Data.CONTENT_URI, dataItem.getId());
intent.setDataAndType(uri, dataItem.getMimeType());
- icon = ResolveCache.getInstance(this).getIcon(dataItem.getMimeType(), intent);
+
+ if (intent != null) {
+ final String mimetype = intent.getType();
+
+ // Attempt to use known icons for known 3p types. Otherwise default to ResolveCache
+ switch (mimetype) {
+ case MIMETYPE_GPLUS_PROFILE:
+ if (INTENT_DATA_GPLUS_PROFILE_ADD_TO_CIRCLE.equals(
+ intent.getDataString())) {
+ icon = getResources().getDrawable(
+ R.drawable.ic_add_to_circles_black_24);
+ } else {
+ icon = getResources().getDrawable(R.drawable.ic_google_plus_24dp);
+ }
+ break;
+ case MIMETYPE_HANGOUTS:
+ if (INTENT_DATA_HANGOUTS_VIDEO.equals(intent.getDataString())) {
+ icon = getResources().getDrawable(R.drawable.ic_hangout_video_24dp);
+ } else {
+ icon = getResources().getDrawable(R.drawable.ic_hangout_24dp);
+ }
+ break;
+ default:
+ icon = ResolveCache.getInstance(this).getIcon(
+ dataItem.getMimeType(), intent);
+ // Call mutate to create a new Drawable.ConstantState for color filtering
+ if (icon != null) {
+ icon.mutate();
+ }
+ }
+ }
}
if (intent != null) {