Update phonetic name in QuickContact only when it's changed

Avoid calling MultiShrinkScroller.initialize() every time when load finished.

Bug 27348939

Change-Id: I889adc9784ca9f4a1f521eca8bad0906787a1941
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);
     }