diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1abfd22..54fce69 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -275,7 +275,7 @@
         <activity-alias android:name="ContactShortcut"
             android:targetActivity=".activities.ContactSelectionActivity"
             android:label="@string/shortcutContact"
-            android:icon="@mipmap/ic_launcher_shortcut_contact">
+            android:icon="@drawable/logo_quick_contacts_color_44in48dp">
 
             <intent-filter>
                 <action android:name="android.intent.action.CREATE_SHORTCUT" />
@@ -287,7 +287,7 @@
         <activity-alias android:name="alias.DialShortcut"
             android:targetActivity=".activities.ContactSelectionActivity"
             android:label="@string/shortcutDialContact"
-            android:icon="@mipmap/ic_launcher_shortcut_directdial"
+            android:icon="@drawable/logo_quick_contacts_dialer_color_44in48dp"
             android:enabled="@*android:bool/config_voice_capable">
 
             <intent-filter>
@@ -301,7 +301,7 @@
         <activity-alias android:name="alias.MessageShortcut"
             android:targetActivity=".activities.ContactSelectionActivity"
             android:label="@string/shortcutMessageContact"
-            android:icon="@mipmap/ic_launcher_shortcut_directmessage"
+            android:icon="@drawable/logo_quick_contacts_mail_color_44in48dp"
             android:enabled="@*android:bool/config_voice_capable">
 
             <intent-filter>
diff --git a/res/drawable-hdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..a52fe5a
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..a3591ec
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..5a77a44
--- /dev/null
+++ b/res/drawable-hdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..7c7f2de
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..846c5cf
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..9d4056e
--- /dev/null
+++ b/res/drawable-mdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..be27c75
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..38f6af8
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..ba83fa3
--- /dev/null
+++ b/res/drawable-xhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..94334ba
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..df94a54
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..9b25b54
--- /dev/null
+++ b/res/drawable-xxhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png
new file mode 100644
index 0000000..67543af
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
new file mode 100644
index 0000000..021a14a
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_dialer_color_44in48dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png b/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png
new file mode 100644
index 0000000..c8c98c0
--- /dev/null
+++ b/res/drawable-xxxhdpi/logo_quick_contacts_mail_color_44in48dp.png
Binary files differ
diff --git a/res/layout-sw720dp/quickcontact_activity.xml b/res/layout-sw720dp/quickcontact_activity.xml
index 5a7d90a..efbb4d1 100644
--- a/res/layout-sw720dp/quickcontact_activity.xml
+++ b/res/layout-sw720dp/quickcontact_activity.xml
@@ -27,52 +27,45 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical" >
+        android:orientation="horizontal">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/quickcontact_starting_empty_height"
-            android:contentDescription="@string/quickcontact_transparent_view_description"
-            android:id="@+id/transparent_view" />
+            android:id="@+id/empty_start_column"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/contact_list_space_layout_weight"
+            android:contentDescription="@string/quickcontact_transparent_view_description" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
+            android:layout_weight="@integer/contact_list_card_layout_weight"
             android:layout_height="match_parent"
-            android:orientation="horizontal">
+            android:orientation="vertical">
 
             <View
-                android:id="@+id/empty_start_column"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="@integer/contact_list_space_layout_weight"
-                android:background="@color/background_primary"
-                android:focusable="false" />
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/quickcontact_starting_empty_height"
+                android:contentDescription="@string/quickcontact_transparent_view_description"
+                android:id="@+id/transparent_view" />
 
-            <LinearLayout
-                android:layout_width="0dp"
+            <FrameLayout
+                android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:layout_weight="@integer/contact_list_card_layout_weight"
-                android:orientation="vertical"
-                android:elevation="@dimen/contact_list_card_elevation"
-                android:outlineProvider="bounds" >
-                <FrameLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:id="@+id/toolbar_parent">
-                    <include layout="@layout/quickcontact_header" />
-                </FrameLayout>
+                android:id="@+id/toolbar_parent">
+                <include layout="@layout/quickcontact_header" />
+            </FrameLayout>
 
-                <include layout="@layout/quickcontact_content" />
-            </LinearLayout>
+            <include layout="@layout/quickcontact_content" />
 
-            <View
-                android:id="@+id/empty_end_column"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="@integer/contact_list_space_layout_weight"
-                android:background="@color/background_primary"
-                android:focusable="false" />
         </LinearLayout>
+
+        <View
+            android:id="@+id/empty_end_column"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="@integer/contact_list_space_layout_weight"
+            android:contentDescription="@string/quickcontact_transparent_view_description" />
+
     </LinearLayout>
 
     <!-- This title's maximum height must be less than the minimum size of its
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_contact.png b/res/mipmap-hdpi/ic_launcher_shortcut_contact.png
deleted file mode 100644
index e132cd0..0000000
--- a/res/mipmap-hdpi/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png
deleted file mode 100644
index f6ec866..0000000
--- a/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
deleted file mode 100644
index 3256f8d..0000000
--- a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_contact.png b/res/mipmap-mdpi/ic_launcher_shortcut_contact.png
deleted file mode 100644
index 218c915..0000000
--- a/res/mipmap-mdpi/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png
deleted file mode 100644
index 50278c3..0000000
--- a/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
deleted file mode 100644
index 88ba718..0000000
--- a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png b/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png
deleted file mode 100644
index 8a5e25a..0000000
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png
deleted file mode 100644
index e060bc5..0000000
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
deleted file mode 100644
index 4664ea6..0000000
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_shortcut_contact.png b/res/mipmap-xxhdpi/ic_launcher_shortcut_contact.png
deleted file mode 100644
index f230faa..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-xxhdpi/ic_launcher_shortcut_directdial.png
deleted file mode 100644
index 153a31a..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_shortcut_directdial.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png
deleted file mode 100644
index 579a100..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_shortcut_directmessage.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_shortcut_contact.png b/res/mipmap-xxxhdpi/ic_launcher_shortcut_contact.png
deleted file mode 100644
index 7d07add..0000000
--- a/res/mipmap-xxxhdpi/ic_launcher_shortcut_contact.png
+++ /dev/null
Binary files differ
diff --git a/res/values-sw600dp/styles.xml b/res/values-sw600dp/styles.xml
index 17b1f69..d92d3c7 100644
--- a/res/values-sw600dp/styles.xml
+++ b/res/values-sw600dp/styles.xml
@@ -30,11 +30,6 @@
         <item name="android:background">@android:color/transparent</item>
     </style>
 
-    <style name="NonPhoneDialogTheme" parent="@android:Theme.Material.Light.Dialog">
-        <item name="android:windowBackground">@android:color/transparent</item>
-        <item name="android:windowContentOverlay">@null</item>
-    </style>
-
     <style name="ConfirmAddDetailViewStyle">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 074ff52..e2bf0aa 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -59,6 +59,7 @@
         <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
         <!-- Style for the overflow button in the actionbar. -->
         <item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
+        <item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item>
         <item name="android:textColorPrimary">@color/primary_text_color</item>
         <item name="android:textColorSecondary">@color/secondary_text_color</item>
         <item name="android:icon">@android:color/transparent</item>
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index cc687ec..bb03705 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -53,7 +53,6 @@
 import com.android.contacts.common.model.RawContactDeltaList;
 import com.android.contacts.common.model.RawContactModifier;
 import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.util.CallerInfoCacheUtils;
 import com.android.contacts.util.ContactPhotoUtils;
 
 import com.google.common.collect.Lists;
@@ -188,10 +187,8 @@
         String action = intent.getAction();
         if (ACTION_NEW_RAW_CONTACT.equals(action)) {
             createRawContact(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         } else if (ACTION_SAVE_CONTACT.equals(action)) {
             saveContact(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         } else if (ACTION_CREATE_GROUP.equals(action)) {
             createGroup(intent);
         } else if (ACTION_RENAME_GROUP.equals(action)) {
@@ -208,16 +205,12 @@
             clearPrimary(intent);
         } else if (ACTION_DELETE_CONTACT.equals(action)) {
             deleteContact(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         } else if (ACTION_JOIN_CONTACTS.equals(action)) {
             joinContacts(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         } else if (ACTION_SET_SEND_TO_VOICEMAIL.equals(action)) {
             setSendToVoicemail(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         } else if (ACTION_SET_RINGTONE.equals(action)) {
             setRingtone(intent);
-            CallerInfoCacheUtils.sendUpdateCallerInfoCacheIntent(this);
         }
     }
 
diff --git a/src/com/android/contacts/NonPhoneActivity.java b/src/com/android/contacts/NonPhoneActivity.java
index bab3977..652620c 100644
--- a/src/com/android/contacts/NonPhoneActivity.java
+++ b/src/com/android/contacts/NonPhoneActivity.java
@@ -27,7 +27,7 @@
 import android.os.Bundle;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Intents.Insert;
-import android.telecomm.PhoneAccount;
+import android.telecom.PhoneAccount;
 import android.text.TextUtils;
 
 /**
diff --git a/src/com/android/contacts/activities/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
index d8926f0..abf89b6 100755
--- a/src/com/android/contacts/activities/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -30,7 +30,7 @@
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.PhoneLookup;
 import android.provider.ContactsContract.RawContacts;
-import android.telecomm.PhoneAccount;
+import android.telecom.PhoneAccount;
 import android.util.Log;
 
 import com.android.contacts.common.ContactsUtils;
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index f112847..ed2520d 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -125,6 +125,7 @@
     private static final String KEY_STATUS = "status";
     private static final String KEY_NEW_LOCAL_PROFILE = "newLocalProfile";
     private static final String KEY_IS_USER_PROFILE = "isUserProfile";
+    private static final String KEY_DISABLE_DELETE_MENU_OPTION = "disableDeleteMenuOption";
     private static final String KEY_UPDATED_PHOTOS = "updatedPhotos";
     private static final String KEY_IS_EDIT = "isEdit";
     private static final String KEY_HAS_NEW_CONTACT = "hasNewContact";
@@ -146,6 +147,9 @@
 
     public static final String INTENT_EXTRA_NEW_LOCAL_PROFILE = "newLocalProfile";
 
+    public static final String INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION =
+            "disableDeleteMenuOption";
+
     /**
      * Modes that specify what the AsyncTask has to perform after saving
      */
@@ -339,6 +343,7 @@
     private boolean mRequestFocus;
     private boolean mNewLocalProfile = false;
     private boolean mIsUserProfile = false;
+    private boolean mDisableDeleteMenuOption = false;
 
     public ContactEditorFragment() {
     }
@@ -471,6 +476,8 @@
                 && mIntentExtras.containsKey(INTENT_EXTRA_ADD_TO_DEFAULT_DIRECTORY);
         mNewLocalProfile = mIntentExtras != null
                 && mIntentExtras.getBoolean(INTENT_EXTRA_NEW_LOCAL_PROFILE);
+        mDisableDeleteMenuOption = mIntentExtras != null
+                && mIntentExtras.getBoolean(INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION);
     }
 
     public void setListener(Listener value) {
@@ -504,6 +511,7 @@
             mEnabled = savedState.getBoolean(KEY_ENABLED);
             mStatus = savedState.getInt(KEY_STATUS);
             mNewLocalProfile = savedState.getBoolean(KEY_NEW_LOCAL_PROFILE);
+            mDisableDeleteMenuOption = savedState.getBoolean(KEY_DISABLE_DELETE_MENU_OPTION);
             mIsUserProfile = savedState.getBoolean(KEY_IS_USER_PROFILE);
             mUpdatedPhotos = savedState.getParcelable(KEY_UPDATED_PHOTOS);
             mIsEdit = savedState.getBoolean(KEY_IS_EDIT);
@@ -1072,6 +1080,7 @@
             splitMenu.setVisible(mState.size() > 1 && !isEditingUserProfile());
             // Cannot join a user profile
             joinMenu.setVisible(!isEditingUserProfile());
+            deleteMenu.setVisible(!mDisableDeleteMenuOption);
         } else {
             // something else, so don't show the help menu
             helpMenu.setVisible(false);
@@ -1767,6 +1776,7 @@
         outState.putLong(KEY_SHOW_JOIN_SUGGESTIONS, mAggregationSuggestionsRawContactId);
         outState.putBoolean(KEY_ENABLED, mEnabled);
         outState.putBoolean(KEY_NEW_LOCAL_PROFILE, mNewLocalProfile);
+        outState.putBoolean(KEY_DISABLE_DELETE_MENU_OPTION, mDisableDeleteMenuOption);
         outState.putBoolean(KEY_IS_USER_PROFILE, mIsUserProfile);
         outState.putInt(KEY_STATUS, mStatus);
         outState.putParcelable(KEY_UPDATED_PHOTOS, mUpdatedPhotos);
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index aacfedf..a41cf77 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -26,7 +26,7 @@
 import android.net.WebAddress;
 import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.Data;
-import android.telecomm.PhoneAccount;
+import android.telecom.PhoneAccount;
 import android.text.TextUtils;
 import android.util.Log;
 
diff --git a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
index 1313e24..f40ebe7 100644
--- a/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
+++ b/src/com/android/contacts/quickcontact/ExpandingEntryCardView.java
@@ -728,7 +728,6 @@
     private void updateBadges() {
         if (mIsExpanded) {
             mBadgeContainer.removeAllViews();
-            mBadgeIds.clear();
         } else {
             // Inflate badges if not yet created
             if (mBadges.size() < mEntries.size() - mCollapsedEntriesCount) {
@@ -829,6 +828,8 @@
         transitionSet.addTransition(boundsTransition);
         transitionSet.addTransition(scrollTransition);
 
+        transitionSet.excludeTarget(R.id.text, /* exclude = */ true);
+
         final ViewGroup transitionViewContainer = mAnimationViewGroup == null ?
                 this : mAnimationViewGroup;
 
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 360ffb7..eda9a91 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -70,8 +70,8 @@
 import android.provider.ContactsContract.QuickContact;
 import android.provider.ContactsContract.RawContacts;
 import android.support.v7.graphics.Palette;
-import android.telecomm.PhoneAccount;
-import android.telecomm.TelecommManager;
+import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
@@ -125,6 +125,7 @@
 import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
 import com.android.contacts.common.util.ViewUtil;
 import com.android.contacts.detail.ContactDisplayUtils;
+import com.android.contacts.editor.ContactEditorFragment;
 import com.android.contacts.interactions.CalendarInteractionsLoader;
 import com.android.contacts.interactions.CallLogInteractionsLoader;
 import com.android.contacts.interactions.ContactDeletionInteraction;
@@ -141,7 +142,6 @@
 import com.android.contacts.widget.MultiShrinkScroller;
 import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
 import com.android.contacts.widget.QuickContactImageView;
-
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 
@@ -354,7 +354,7 @@
                     Bundle extras = new Bundle();
                     extras.putParcelable(TouchPointManager.TOUCH_POINT,
                             TouchPointManager.getInstance().getPoint());
-                    intent.putExtra(TelecommManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+                    intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
                 }
             }
 
@@ -771,6 +771,10 @@
     }
 
     private void processIntent(Intent intent) {
+        if (intent == null) {
+            finish();
+            return;
+        }
         Uri lookupUri = intent.getData();
 
         // Check to see whether it comes from the old version.
@@ -2162,6 +2166,11 @@
                                 mContactData.getRawContacts().get(0).getDataSet());
                     }
 
+                    // Add this flag to disable the delete menu option on directory contact joins
+                    // with local contacts. The delete option is ambiguous when joining contacts.
+                    intent.putExtra(ContactEditorFragment.INTENT_EXTRA_DISABLE_DELETE_MENU_OPTION,
+                            true);
+
                     startActivityForResult(intent, REQUEST_CODE_CONTACT_SELECTION_ACTIVITY);
                 } else if (InvisibleContactUtil.isInvisibleAndAddable(mContactData, this)) {
                     InvisibleContactUtil.addToDefaultGroup(mContactData, this);
diff --git a/src/com/android/contacts/util/CallerInfoCacheUtils.java b/src/com/android/contacts/util/CallerInfoCacheUtils.java
deleted file mode 100644
index 9e53159..0000000
--- a/src/com/android/contacts/util/CallerInfoCacheUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.util;
-
-import android.content.Context;
-import android.content.Intent;
-
-/**
- * Utilities for managing CallerInfoCache.
- *
- * The cache lives in Phone package and is used as fallback storage when database lookup is slower
- * than expected. It remembers some information necessary for responding to incoming calls
- * (e.g. custom ringtone settings, send-to-voicemail).
- *
- * Even though the cache will be updated periodically, Contacts app can request the cache update
- * via broadcast Intent. This class provides that mechanism, and possibly other misc utilities
- * for the update mechanism.
- */
-public final class CallerInfoCacheUtils {
-    private static final String UPDATE_CALLER_INFO_CACHE =
-            "com.android.phone.UPDATE_CALLER_INFO_CACHE";
-
-    private CallerInfoCacheUtils() {
-    }
-
-    /**
-     * Sends an Intent, notifying CallerInfo cache should be updated.
-     *
-     * Note: CallerInfo is *not* part of public API, and no guarantee is available around its
-     * specific behavior. In practice this will only be used by Phone package, but may change
-     * in the future.
-     *
-     * See also CallerInfoCache in Phone package for more information.
-     */
-    public static void sendUpdateCallerInfoCacheIntent(Context context) {
-        context.sendBroadcast(new Intent(UPDATE_CALLER_INFO_CACHE));
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index 15dca5c..570a24b 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -275,7 +275,21 @@
         mLargeTextView = (TextView) findViewById(R.id.large_title);
         mInvisiblePlaceholderTextView = (TextView) findViewById(R.id.placeholder_textview);
         mStartColumn = findViewById(R.id.empty_start_column);
-
+        // Touching the empty space should close the card
+        if (mStartColumn != null) {
+            mStartColumn.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    scrollOffBottom();
+                }
+            });
+            findViewById(R.id.empty_end_column).setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    scrollOffBottom();
+                }
+            });
+        }
         mListener = listener;
         mIsOpenContactSquare = isOpenContactSquare;
 
