diff --git a/res/layout/expanding_entry_card_item.xml b/res/layout/expanding_entry_card_item.xml
index 228244d..a4bdce1 100644
--- a/res/layout/expanding_entry_card_item.xml
+++ b/res/layout/expanding_entry_card_item.xml
@@ -41,6 +41,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentTop="true"
+        android:paddingTop="5dp"
         android:layout_toEndOf="@+id/icon"
         android:layout_toStartOf="@+id/icon_alternate"
         android:textColor="@color/quickcontact_entry_header_text_color"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 7b4cd12..e16d11e 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -213,7 +213,7 @@
     <!-- Dimensions for an entry in ExpandingEntryCardView -->
     <dimen name="expanding_entry_card_item_padding_start">20dp</dimen>
     <dimen name="expanding_entry_card_item_padding_end">20dp</dimen>
-    <dimen name="expanding_entry_card_item_padding_top">18dp</dimen>
+    <dimen name="expanding_entry_card_item_padding_top">13dp</dimen>
     <dimen name="expanding_entry_card_item_padding_bottom">16dp</dimen>
     <dimen name="expanding_entry_card_item_image_spacing">27dp</dimen>
 
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 60b5bb4..46d25a7 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -925,8 +925,8 @@
             return;
         }
 
-        final int previousScreenType = getIntent().getExtras()
-                .getInt(EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
+        final int previousScreenType = getIntent().getIntExtra
+                (EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
         Logger.logScreenView(this, ScreenType.QUICK_CONTACT, previousScreenType);
 
         if (CompatUtils.isLollipopCompatible()) {
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index 1fbd3ae..eb3283f 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -408,16 +408,27 @@
     }
 
     public void setPhoneticName(String phoneticName) {
+        // Set phonetic name only when it was gone before or got changed.
+        if (mPhoneticNameView.getVisibility() == View.VISIBLE
+                && phoneticName.equals(mPhoneticNameView.getText())) {
+            return;
+        }
         mPhoneticNameView.setText(phoneticName);
         // Every time the phonetic name is changed, set mPhoneticNameView as visible,
         // in case it just changed from Visibility=GONE.
         mPhoneticNameView.setVisibility(View.VISIBLE);
+        // TODO try not using initialize() to refresh phonetic name view: b/27410518
         initialize(mListener, mIsOpenContactSquare);
     }
 
     public void setPhoneticNameGone() {
+        // Remove phonetic name only when it was visible before.
+        if (mPhoneticNameView.getVisibility() == View.GONE) {
+            return;
+        }
         mPhoneticNameView.setVisibility(View.GONE);
         // Initialize to make Visibility work.
+        // TODO try not using initialize() to refresh phonetic name view: b/27410518
         initialize(mListener, mIsOpenContactSquare);
     }
 
diff --git a/tests/res/layout/quick_contact_tests.xml b/tests/res/layout/quick_contact_tests.xml
index aa0648e..71393cf 100644
--- a/tests/res/layout/quick_contact_tests.xml
+++ b/tests/res/layout/quick_contact_tests.xml
@@ -91,5 +91,11 @@
             style="?android:attr/quickContactBadgeStyleSmallWindowLarge"
             android:layout_marginLeft="4dip" />
     </LinearLayout>
+    <Button
+        android:id="@android:id/button1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/quickContactIntent"
+        android:enabled="false"/>
 </LinearLayout>
 
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
index c1d4626..e675566 100644
--- a/tests/res/values/donottranslate_strings.xml
+++ b/tests/res/values/donottranslate_strings.xml
@@ -86,6 +86,7 @@
     <string name="pinnedHeaderList">Pinned Headers</string>
     <string name="quickContactTests">Quick Contact modes</string>
     <string name="pickContact">Pick contact</string>
+    <string name="quickContactIntent">Start with Intent</string>
     <string name="fillCallLogTest">Fill call log test</string>
     <string name="addToCallLogButton">Add</string>
     <string name="numberOfCallLogEntries">Number of call log entries to add:</string>
diff --git a/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java b/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java
index 5092487..1600744 100644
--- a/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java
+++ b/tests/src/com/android/contacts/tests/quickcontact/QuickContactTestsActivity.java
@@ -23,6 +23,7 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.QuickContact;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.Window;
@@ -45,6 +46,7 @@
     private QuickContactBadge mMediumBadge2;
     private QuickContactBadge mLargeBadge1;
     private QuickContactBadge mLargeBadge2;
+    private Button mButton;
 
     private Uri mContactUri;
 
@@ -63,6 +65,15 @@
         mMediumBadge2 = (QuickContactBadge) findViewById(R.id.medium_badge2);
         mLargeBadge1 = (QuickContactBadge) findViewById(R.id.large_badge1);
         mLargeBadge2 = (QuickContactBadge) findViewById(R.id.large_badge2);
+        mButton = (Button) findViewById(android.R.id.button1);
+        mButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                final Intent intent = new Intent(QuickContact.ACTION_QUICK_CONTACT);
+                intent.setData(mContactUri);
+                startActivity(intent);
+            }
+        });
 
         mPickContact.setOnClickListener(new OnClickListener() {
             @Override
@@ -89,6 +100,7 @@
             case REQUEST_CODE_PICK: {
                 mContactUri = data.getData();
                 assignUri();
+                mButton.setEnabled(true);
                 break;
             }
         }
