Set maximumHeaderTextSize based on line count of TextView

Bug: 33844924

Test: manually verified contact name and phonetic name are
      displayed correctly in multi-window mode when contact
      name is of 1 and 2 lines, and phonetic name is of 0,
      1 and 2 lines.

Change-Id: I2a49c3c6cd3de87cf79eeaa7afc6962056d0d66a
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index b86bebf..8cced15 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -110,7 +110,7 @@
     private View mPhotoViewContainer;
     private View mTransparentView;
     private MultiShrinkScrollerListener mListener;
-    private TextView mLargeTextView;
+    private TextView mFullNameView;
     private TextView mPhoneticNameView;
     private View mTitleAndPhoneticNameView;
     private View mPhotoTouchInterceptOverlay;
@@ -296,7 +296,7 @@
         mToolbar = findViewById(R.id.toolbar_parent);
         mPhotoViewContainer = findViewById(R.id.toolbar_parent);
         mTransparentView = findViewById(R.id.transparent_view);
-        mLargeTextView = (TextView) findViewById(R.id.large_title);
+        mFullNameView = (TextView) findViewById(R.id.large_title);
         mPhoneticNameView = (TextView) findViewById(R.id.phonetic_name);
         mTitleAndPhoneticNameView = findViewById(R.id.title_and_phonetic_name);
         mInvisiblePlaceholderTextView = (TextView) findViewById(R.id.placeholder_textview);
@@ -351,7 +351,7 @@
                 setHeaderHeight(getMaximumScrollableHeaderHeight());
                 if (shouldUpdateNameViewHeight) {
                     mMaximumHeaderTextSize = mTitleAndPhoneticNameView.getHeight();
-                    mMaximumFullNameViewHeight = mLargeTextView.getHeight();
+                    mMaximumFullNameViewHeight = mFullNameView.getHeight();
                     // We cannot rely on mPhoneticNameView.getHeight() since it could be 0
                     final int phoneticNameSize = getResources().getDimensionPixelSize(
                             R.dimen.quickcontact_maximum_phonetic_name_size);
@@ -384,9 +384,9 @@
                     largeTextLayoutParams.gravity = Gravity.BOTTOM | Gravity.START;
                     mTitleAndPhoneticNameView.setLayoutParams(largeTextLayoutParams);
                 } else {
-                    // Set the width of mLargeTextView as if it was nested inside
+                    // Set the width of mFullNameView as if it was nested inside
                     // mPhotoViewContainer.
-                    mLargeTextView.setWidth(mPhotoViewContainer.getWidth()
+                    mFullNameView.setWidth(mPhotoViewContainer.getWidth()
                             - 2 * mMaximumTitleMargin);
                     mPhoneticNameView.setWidth(mPhotoViewContainer.getWidth()
                             - 2 * mMaximumTitleMargin);
@@ -415,10 +415,10 @@
     }
 
     public void setTitle(String title, boolean isPhoneNumber) {
-        mLargeTextView.setText(title);
-        // We have a phone number as "mLargeTextView" so make it always LTR.
+        mFullNameView.setText(title);
+        // We have a phone number as "mFullNameView" so make it always LTR.
         if (isPhoneNumber) {
-            mLargeTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
+            mFullNameView.setTextDirection(View.TEXT_DIRECTION_LTR);
         }
         mPhotoTouchInterceptOverlay.setContentDescription(title);
     }
@@ -433,9 +433,11 @@
         // Every time the phonetic name is changed, set mPhoneticNameView as visible,
         // in case it just changed from Visibility=GONE.
         mPhoneticNameView.setVisibility(View.VISIBLE);
+        final int maximumHeaderTextSize =
+                mMaximumFullNameViewHeight * mFullNameView.getLineCount()
+                + mMaximumPhoneticNameViewHeight * mPhoneticNameView.getLineCount();
         // TODO try not using initialize() to refresh phonetic name view: b/27410518
-        initialize(mListener, mIsOpenContactSquare, /* maximumHeaderTextSize */
-                (mMaximumFullNameViewHeight + mMaximumPhoneticNameViewHeight),
+        initialize(mListener, mIsOpenContactSquare, maximumHeaderTextSize,
                 /* shouldUpdateNameViewHeight */ false);
     }
 
@@ -445,10 +447,10 @@
             return;
         }
         mPhoneticNameView.setVisibility(View.GONE);
-        // Initialize to make Visibility work.
+        final int maximumHeaderTextSize =
+                mMaximumFullNameViewHeight * mFullNameView.getLineCount();
         // TODO try not using initialize() to refresh phonetic name view: b/27410518
-        initialize(mListener, mIsOpenContactSquare,
-                /* maximumHeaderTextSize */ mMaximumFullNameViewHeight,
+        initialize(mListener, mIsOpenContactSquare, maximumHeaderTextSize,
                 /* shouldUpdateNameViewHeight */ false);
     }