diff --git a/res/layout/compact_contact_editor_fragment.xml b/res/layout/compact_contact_editor_fragment.xml
index a61b290..1a0788e 100644
--- a/res/layout/compact_contact_editor_fragment.xml
+++ b/res/layout/compact_contact_editor_fragment.xml
@@ -37,7 +37,8 @@
                 android:layout_gravity="center_horizontal"
                 android:orientation="vertical">
 
-            <ImageView android:id="@+id/photo"
+            <com.android.contacts.widget.QuickContactImageView
+                    android:id="@+id/photo"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
                     android:clickable="true"
diff --git a/src/com/android/contacts/activities/ContactEditorBaseActivity.java b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
index e4e9049..46edc31 100644
--- a/src/com/android/contacts/activities/ContactEditorBaseActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorBaseActivity.java
@@ -161,6 +161,12 @@
     public static final String INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =
             "finishActivityOnSaveCompleted";
 
+    /**
+     * Intent key to pass the calculated photo palette calculated by
+     * {@link com.android.contacts.quickcontact.QuickContactActivity} to the compact editor.
+     */
+    public static final String INTENT_KEY_MATERIAL_PALETTE = "materialPalette";
+
     protected ContactEditor mFragment;
     private boolean mFinishActivityOnSaveCompleted;
 
diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
index c93f873..5635d09 100644
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -19,10 +19,12 @@
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
 import com.android.contacts.activities.CompactContactEditorActivity;
+import com.android.contacts.activities.ContactEditorBaseActivity;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.RawContactDelta;
 import com.android.contacts.common.model.RawContactDeltaList;
 import com.android.contacts.common.model.account.AccountType;
+import com.android.contacts.common.util.MaterialColorMapUtils;
 import com.android.contacts.detail.PhotoSelectionHandler;
 import com.android.contacts.util.ContactPhotoUtils;
 
@@ -50,6 +52,7 @@
     private static final String KEY_PHOTO_URI = "photo_uri";
     private static final String KEY_PHOTO_RAW_CONTACT_ID = "photo_raw_contact_id";
     private static final String KEY_UPDATED_PHOTOS = "updated_photos";
+    private static final String KEY_MATERIAL_PALETTE = "material_palette";
 
     /**
      * Displays a PopupWindow with photo edit options.
@@ -112,6 +115,7 @@
     private Uri mPhotoUri;
     private long mPhotoRawContactId;
     private Bundle mUpdatedPhotos = new Bundle();
+    private MaterialColorMapUtils.MaterialPalette mMaterialPalette;
 
     @Override
     public void onCreate(Bundle savedState) {
@@ -121,6 +125,10 @@
             mPhotoUri = savedState.getParcelable(KEY_PHOTO_URI);
             mPhotoRawContactId = savedState.getLong(KEY_PHOTO_RAW_CONTACT_ID);
             mUpdatedPhotos = savedState.getParcelable(KEY_UPDATED_PHOTOS);
+            mMaterialPalette = savedState.getParcelable(KEY_MATERIAL_PALETTE);
+        } else {
+            mMaterialPalette = getActivity().getIntent().getParcelableExtra(
+                    ContactEditorBaseActivity.INTENT_KEY_MATERIAL_PALETTE);
         }
     }
 
@@ -139,6 +147,9 @@
         outState.putParcelable(KEY_PHOTO_URI, mPhotoUri);
         outState.putLong(KEY_PHOTO_RAW_CONTACT_ID, mPhotoRawContactId);
         outState.putParcelable(KEY_UPDATED_PHOTOS, mUpdatedPhotos);
+        if (mMaterialPalette != null) {
+            outState.putParcelable(KEY_MATERIAL_PALETTE, mMaterialPalette);
+        }
         super.onSaveInstanceState(outState);
     }
 
@@ -162,7 +173,7 @@
 
         final CompactRawContactsEditorView editorView = getContent();
         editorView.setListener(this);
-        editorView.setState(mState, mViewIdGenerator);
+        editorView.setState(mState, mMaterialPalette, mViewIdGenerator);
         editorView.setEnabled(isEnabled());
         editorView.setVisibility(View.VISIBLE);
 
diff --git a/src/com/android/contacts/editor/CompactHeaderView.java b/src/com/android/contacts/editor/CompactHeaderView.java
index d150902..5634b8a 100644
--- a/src/com/android/contacts/editor/CompactHeaderView.java
+++ b/src/com/android/contacts/editor/CompactHeaderView.java
@@ -24,9 +24,11 @@
 import com.android.contacts.common.model.RawContactDelta;
 import com.android.contacts.common.model.ValuesDelta;
 import com.android.contacts.common.model.dataitem.DataKind;
+import com.android.contacts.common.util.MaterialColorMapUtils;
 import com.android.contacts.editor.CompactContactEditorFragment.PhotoHandler;
 import com.android.contacts.util.ContactPhotoUtils;
 import com.android.contacts.util.SchedulingUtils;
+import com.android.contacts.widget.QuickContactImageView;
 
 import android.content.Context;
 import android.graphics.Bitmap;
@@ -59,8 +61,9 @@
     private ValuesDelta mValuesDelta;
     private boolean mReadOnly;
     private boolean mIsPhotoSet;
+    private MaterialColorMapUtils.MaterialPalette mMaterialPalette;
 
-    private ImageView mPhotoImageView;
+    private QuickContactImageView mPhotoImageView;
 
     public CompactHeaderView(Context context) {
         this(context, null);
@@ -81,14 +84,17 @@
         super.onFinishInflate();
         mContactPhotoManager = ContactPhotoManager.getInstance(getContext());
 
-        mPhotoImageView = (ImageView) findViewById(R.id.photo);
+        mPhotoImageView = (QuickContactImageView) findViewById(R.id.photo);
         mPhotoImageView.setOnClickListener(this);
     }
 
     public void setValues(DataKind dataKind, ValuesDelta valuesDelta,
-            RawContactDelta rawContactDelta, boolean readOnly, ViewIdGenerator viewIdGenerator) {
+            RawContactDelta rawContactDelta, boolean readOnly,
+            MaterialColorMapUtils.MaterialPalette materialPalette,
+            ViewIdGenerator viewIdGenerator) {
         mValuesDelta = valuesDelta;
         mReadOnly = readOnly;
+        mMaterialPalette = materialPalette;
 
         setId(viewIdGenerator.getId(rawContactDelta, dataKind, valuesDelta, /* viewIndex =*/ 0));
 
@@ -122,6 +128,10 @@
             }
         }
 
+        if (!mIsPhotoSet && mMaterialPalette != null) {
+            mPhotoImageView.setTint(materialPalette.mPrimaryColor);
+        }
+
         // Make the photo a square
         SchedulingUtils.doOnPreDraw(this, /* drawNextFrame =*/ false, new Runnable() {
             @Override
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index 7506f5a..6560ad0 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -25,6 +25,7 @@
 import com.android.contacts.common.model.account.AccountType;
 import com.android.contacts.common.model.account.AccountType.EditField;
 import com.android.contacts.common.model.dataitem.DataKind;
+import com.android.contacts.common.util.MaterialColorMapUtils;
 import com.android.contacts.editor.CompactContactEditorFragment.PhotoHandler;
 
 import android.content.Context;
@@ -70,6 +71,7 @@
     private AccountTypeManager mAccountTypeManager;
     private LayoutInflater mLayoutInflater;
     private ViewIdGenerator mViewIdGenerator;
+    private MaterialColorMapUtils.MaterialPalette mMaterialPalette;
 
     private CompactHeaderView mHeader;
     private ViewGroup mNames;
@@ -182,7 +184,9 @@
         return mPhotoRawContactId;
     }
 
-    public void setState(RawContactDeltaList rawContactDeltas, ViewIdGenerator viewIdGenerator) {
+    public void setState(RawContactDeltaList rawContactDeltas,
+            MaterialColorMapUtils.MaterialPalette materialPalette,
+            ViewIdGenerator viewIdGenerator) {
         mNames.removeAllViews();
         mPhoneticNames.removeAllViews();
         mNicknames.removeAllViews();
@@ -197,6 +201,7 @@
         mViewIdGenerator = viewIdGenerator;
         setId(mViewIdGenerator.getId(rawContactDeltas.get(0), /* dataKind =*/ null,
                 /* valuesDelta =*/ null, ViewIdGenerator.NO_VIEW_INDEX));
+        mMaterialPalette = materialPalette;
 
         addHeaderView(rawContactDeltas, viewIdGenerator);
         addStructuredNameView(rawContactDeltas);
@@ -224,7 +229,7 @@
                     final ValuesDelta valuesDelta = rawContactDelta.getSuperPrimaryEntry(
                             dataKind.mimeType, /* forceSelection =*/ true);
                     mHeader.setValues(dataKind, valuesDelta, rawContactDelta,
-                            /* readOnly =*/ !dataKind.editable, viewIdGenerator);
+                            /* readOnly =*/ !dataKind.editable, mMaterialPalette, viewIdGenerator);
                     return;
                 }
             }
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index bec1568..cf6cc47 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -92,6 +92,7 @@
 import com.android.contacts.ContactsActivity;
 import com.android.contacts.NfcHandler;
 import com.android.contacts.R;
+import com.android.contacts.activities.ContactEditorBaseActivity;
 import com.android.contacts.common.CallUtil;
 import com.android.contacts.common.ClipboardUtils;
 import com.android.contacts.common.Collapser;
@@ -2151,6 +2152,10 @@
         final Intent intent = new Intent(Intent.ACTION_EDIT, mContactData.getLookupUri());
         intent.setPackage(this.getPackageName());
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+        if (mHasComputedThemeColor) {
+            intent.putExtra(ContactEditorBaseActivity.INTENT_KEY_MATERIAL_PALETTE,
+                    new MaterialPalette(mColorFilterColor, mStatusBarColor));
+        }
         return intent;
     }
 
