Merge "Show incall UI correctly."
diff --git a/res/layout-sw580dp/people_activity.xml b/res/layout-sw580dp/people_activity.xml
index 969bbf9..6d702e7 100644
--- a/res/layout-sw580dp/people_activity.xml
+++ b/res/layout-sw580dp/people_activity.xml
@@ -28,6 +28,7 @@
         android:splitMotionEvents="true">
 
         <LinearLayout
+            android:id="@+id/browse_view"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:orientation="vertical"
@@ -36,40 +37,33 @@
             ex:layout_narrowWidth="310dip"
             ex:layout_wideParentWidth="1280dip"
             ex:layout_wideWidth="430dip"
-            android:background="@drawable/list_background_holo">
+            android:background="@drawable/list_background_holo"
+            android:visibility="gone">
 
             <View
                 style="@style/SectionDivider"
                 android:layout_marginLeft="40dip"
                 android:layout_marginTop="24dip" />
 
-            <!-- Favorites -->
-            <fragment
-                android:id="@+id/favorites_fragment"
-                class="com.android.contacts.list.StrequentContactListFragment"
-                android:layout_height="match_parent"
-                android:layout_width="match_parent" />
-
             <!-- Contacts -->
             <fragment
                 android:id="@+id/contacts_fragment"
                 class="com.android.contacts.list.DefaultContactBrowseListFragment"
                 android:layout_height="0dip"
                 android:layout_width="match_parent"
-                android:layout_weight="1"
-            />
+                android:layout_weight="1" />
 
             <!-- Groups -->
             <fragment
                 android:id="@+id/groups_fragment"
                 class="com.android.contacts.group.GroupBrowseListFragment"
                 android:layout_height="match_parent"
-                android:layout_width="match_parent"
-            />
+                android:layout_width="match_parent" />
         </LinearLayout>
 
         <view
             class="com.android.contacts.widget.TransitionAnimationView"
+            android:id="@+id/details_view"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             ex:layout_narrowParentWidth="800dip"
@@ -82,19 +76,61 @@
             ex:clipMarginBottom="9dip"
             ex:enterAnimation="@android:animator/fade_in"
             ex:exitAnimation="@android:animator/fade_out"
-            ex:animationDuration="200">
+            ex:animationDuration="200"
+            android:visibility="gone">
+
             <fragment
                 android:id="@+id/contact_detail_fragment"
                 class="com.android.contacts.detail.ContactDetailFragment"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-            />
+                android:layout_height="match_parent" />
             <fragment
                 android:id="@+id/group_detail_fragment"
                 class="com.android.contacts.group.GroupDetailFragment"
                 android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+        </view>
+
+        <view
+            class="com.android.contacts.widget.TransitionAnimationView"
+            android:id="@+id/favorites_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            ex:layout_narrowParentWidth="800dip"
+            ex:layout_narrowMarginRight="0dip"
+            ex:layout_wideParentWidth="1280dip"
+            ex:layout_wideMarginRight="48dip"
+            ex:clipMarginLeft="0dip"
+            ex:clipMarginTop="3dip"
+            ex:clipMarginRight="3dip"
+            ex:clipMarginBottom="9dip"
+            ex:enterAnimation="@android:animator/fade_in"
+            ex:exitAnimation="@android:animator/fade_out"
+            ex:animationDuration="200"
+            android:paddingTop="32dip"
+            android:paddingRight="32dip">
+
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="match_parent"
-            />
+                android:background="@drawable/list_background_holo">
+
+                <!-- Starred -->
+                <fragment
+                    android:id="@+id/favorites_fragment"
+                    class="com.android.contacts.list.StrequentContactListFragment"
+                    android:layout_height="match_parent"
+                    android:layout_width="0dip"
+                    android:layout_weight="2" />
+
+                <!-- Most Frequent -->
+                <fragment
+                    android:id="@+id/frequent_fragment"
+                    class="com.android.contacts.list.StrequentContactListFragment"
+                    android:layout_height="match_parent"
+                    android:layout_width="0dip"
+                    android:layout_weight="1" />
+            </LinearLayout>
         </view>
 
     </com.android.contacts.widget.InterpolatingLayout>
diff --git a/res/layout/contact_tile_regular.xml b/res/layout/contact_tile_regular.xml
index c931e97..0c02318 100644
--- a/res/layout/contact_tile_regular.xml
+++ b/res/layout/contact_tile_regular.xml
@@ -17,7 +17,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     class="com.android.contacts.list.ContactTileView"
     android:focusable="true"
-    android:padding="1dip"
+    android:padding="1px"
     android:background="@drawable/list_selector" >
 
     <RelativeLayout
@@ -30,15 +30,27 @@
             android:layout_height="match_parent"
             android:scaleType="centerCrop" />
 
+        <View
+            android:id="@+id/contact_tile_background"
+            android:layout_width="match_parent"
+            android:layout_height="48dip"
+            android:layout_alignParentBottom="true"
+            android:layout_alignParentLeft="true"
+            android:alpha="0.5"
+            android:background="@android:color/black" />
+
         <TextView
             android:id="@+id/contact_tile_name"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
+            android:layout_height="48dip"
             android:layout_alignParentBottom="true"
-            android:background="@color/contact_tile_regular_text"
-            android:textColor="@color/contact_tile_regular_text_background"
-            android:textSize="17sp"
-            android:alpha="0.7" />
+            android:layout_alignParentLeft="true"
+            android:gravity="center_vertical"
+            android:paddingLeft="8dip"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textColor="@android:color/white"
+            android:textAppearance="?android:attr/textAppearanceMedium" />
 
     </RelativeLayout>
 
diff --git a/res/layout/contact_tile_single.xml b/res/layout/contact_tile_single.xml
index e1bdccc..7147f3c 100644
--- a/res/layout/contact_tile_single.xml
+++ b/res/layout/contact_tile_single.xml
@@ -31,7 +31,9 @@
             android:layout_height="fill_parent"
             android:layout_weight="1"
             android:textSize="18sp"
-            android:textColor="#333333"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textAppearance="?android:attr/textAppearanceMedium"
             android:paddingTop="24dip" />
 
         <ImageView
diff --git a/res/layout/favorites_star.xml b/res/layout/favorites_star.xml
new file mode 100644
index 0000000..f2afa31
--- /dev/null
+++ b/res/layout/favorites_star.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:paddingLeft="10dip"
+    android:paddingRight="10dip">
+    <CheckBox
+        android:id="@+id/star"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:contentDescription="@string/description_star"
+        android:visibility="invisible"
+        style="?android:attr/starStyle"/>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/menu/star.xml b/res/menu/star.xml
new file mode 100644
index 0000000..904adbf
--- /dev/null
+++ b/res/menu/star.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/menu_star"
+        android:showAsAction="always" />
+</menu>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 60873b1..9d726e2 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -51,8 +51,4 @@
 
     <!-- Color of the background of the tabs on the contact detail page -->
     <color name="detail_tab_background">#DBDBDB</color>
-
-    <!--  Color of the text foreground and background of Regular Sized ContactTile -->
-    <color name="contact_tile_regular_text">#2B1B17</color>
-    <color name="contact_tile_regular_text_background">#FFFFFF</color>
 </resources>
diff --git a/src/com/android/contacts/activities/ContactDetailActivity.java b/src/com/android/contacts/activities/ContactDetailActivity.java
index c62084b..e216d54 100644
--- a/src/com/android/contacts/activities/ContactDetailActivity.java
+++ b/src/com/android/contacts/activities/ContactDetailActivity.java
@@ -22,6 +22,7 @@
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
 import com.android.contacts.detail.ContactDetailAboutFragment;
+import com.android.contacts.detail.ContactDetailDisplayUtils;
 import com.android.contacts.detail.ContactDetailFragment;
 import com.android.contacts.detail.ContactDetailFragmentCarousel;
 import com.android.contacts.detail.ContactDetailTabCarousel;
@@ -42,9 +43,15 @@
 import android.support.v4.view.ViewPager.OnPageChangeListener;
 import android.util.Log;
 import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
 import android.widget.AbsListView;
 import android.widget.AbsListView.OnScrollListener;
+import android.widget.CheckBox;
 import android.widget.Toast;
 
 import java.util.ArrayList;
@@ -54,6 +61,9 @@
 
     public static final int FRAGMENT_COUNT = 2;
 
+    private ContactLoader.Result mContactData;
+    private Uri mLookupUri;
+
     private ContactDetailAboutFragment mAboutFragment;
     private ContactDetailUpdatesFragment mUpdatesFragment;
 
@@ -129,6 +139,40 @@
     }
 
     @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.star, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        MenuItem starredMenuItem = menu.findItem(R.id.menu_star);
+        ViewGroup starredContainer = (ViewGroup) getLayoutInflater().inflate(
+                R.layout.favorites_star, null, false);
+        final CheckBox starredView = (CheckBox) starredContainer.findViewById(R.id.star);
+        starredView.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                // Toggle "starred" state
+                // Make sure there is a contact
+                if (mLookupUri != null) {
+                    Intent intent = ContactSaveService.createSetStarredIntent(
+                            ContactDetailActivity.this, mLookupUri, starredView.isChecked());
+                    ContactDetailActivity.this.startService(intent);
+                }
+            }
+        });
+        // If there is contact data, update the starred state
+        if (mContactData != null) {
+            ContactDetailDisplayUtils.setStarred(mContactData, starredView);
+        }
+        starredMenuItem.setActionView(starredContainer);
+        return true;
+    }
+
+    @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         FragmentKeyListener mCurrentFragment;
         switch (getCurrentPage()) {
@@ -165,6 +209,12 @@
 
         @Override
         public void onDetailsLoaded(ContactLoader.Result result) {
+            if (result == null) {
+                return;
+            }
+            mContactData = result;
+            mLookupUri = result.getLookupUri();
+            invalidateOptionsMenu();
             if (mTabCarousel != null) {
                 mTabCarousel.loadData(result);
             }
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 548faa2..e373a6b 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -32,6 +32,7 @@
 import com.android.contacts.list.ContactEntryListFragment;
 import com.android.contacts.list.ContactListFilter;
 import com.android.contacts.list.ContactListFilterController;
+import com.android.contacts.list.ContactTileAdapter.DisplayType;
 import com.android.contacts.list.ContactsIntentResolver;
 import com.android.contacts.list.ContactsRequest;
 import com.android.contacts.list.ContactsUnavailableFragment;
@@ -53,7 +54,6 @@
 import android.app.ActionBar.Tab;
 import android.app.ActionBar.TabListener;
 import android.app.Activity;
-import android.app.Dialog;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
@@ -93,6 +93,7 @@
     private static final int SUBACTIVITY_NEW_CONTACT = 2;
     private static final int SUBACTIVITY_EDIT_CONTACT = 3;
     private static final int SUBACTIVITY_CUSTOMIZE_FILTER = 4;
+    private static final int FAVORITES_COLUMN_COUNT = 4;
 
     private static final String KEY_SEARCH_MODE = "searchMode";
 
@@ -134,8 +135,13 @@
 
     private DefaultContactBrowseListFragment mContactsFragment;
     private StrequentContactListFragment mFavoritesFragment;
+    private StrequentContactListFragment mFrequentFragment;
     private GroupBrowseListFragment mGroupsFragment;
 
+    private View mFavoritesView;
+    private View mBrowserView;
+    private View mDetailsView;
+
     private enum TabState {
         FAVORITES, CONTACTS, GROUPS
     }
@@ -182,6 +188,8 @@
         } else if (fragment instanceof StrequentContactListFragment) {
             mFavoritesFragment = (StrequentContactListFragment) fragment;
             mFavoritesFragment.setListener(mFavoritesFragmentListener);
+            mFavoritesFragment.setColumnCount(FAVORITES_COLUMN_COUNT);
+            mFavoritesFragment.setDisplayType(DisplayType.STARRED_ONLY);
         }
     }
 
@@ -218,19 +226,27 @@
         if (createContentView) {
             setContentView(R.layout.people_activity);
 
+            mFavoritesView = findViewById(R.id.favorites_view);
+            mDetailsView = findViewById(R.id.details_view);
+            mBrowserView = findViewById(R.id.browse_view);
+
             final FragmentManager fragmentManager = getFragmentManager();
             mFavoritesFragment = (StrequentContactListFragment) fragmentManager
                     .findFragmentById(R.id.favorites_fragment);
+            mFrequentFragment = (StrequentContactListFragment) fragmentManager
+                    .findFragmentById(R.id.frequent_fragment);
             mContactsFragment = (DefaultContactBrowseListFragment) fragmentManager
                     .findFragmentById(R.id.contacts_fragment);
             mGroupsFragment = (GroupBrowseListFragment) fragmentManager
                     .findFragmentById(R.id.groups_fragment);
-
             // Hide all tabs (the current tab will later be reshown once a tab is selected)
             final FragmentTransaction transaction = fragmentManager.beginTransaction();
-            transaction.hide(mFavoritesFragment);
             transaction.hide(mContactsFragment);
             transaction.hide(mGroupsFragment);
+
+            if (mFrequentFragment != null) {
+                mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
+            }
             if (mContactDetailFragment != null) {
                 transaction.hide(mContactDetailFragment);
             }
@@ -261,7 +277,7 @@
             Tab favoritesTab = actionBar.newTab();
             favoritesTab.setText(getString(R.string.strequentList));
             favoritesTab.setTabListener(new TabChangeListener(mFavoritesFragment,
-                    mContactDetailFragment, TabState.FAVORITES));
+                    mFrequentFragment, TabState.FAVORITES));
             actionBar.addTab(favoritesTab);
 
             Tab peopleTab = actionBar.newTab();
@@ -333,6 +349,22 @@
 
     private void setSelectedTab(TabState tab) {
         mSelectedTab = tab;
+
+        if (mFrequentFragment != null) {
+            switch (mSelectedTab) {
+                case FAVORITES:
+                    mFavoritesView.setVisibility(View.VISIBLE);
+                    mBrowserView.setVisibility(View.GONE);
+                    mDetailsView.setVisibility(View.GONE);
+                    break;
+                case GROUPS:
+                case CONTACTS:
+                    mFavoritesView.setVisibility(View.GONE);
+                    mBrowserView.setVisibility(View.VISIBLE);
+                    mDetailsView.setVisibility(View.VISIBLE);
+                    break;
+            }
+        }
     }
 
     @Override
@@ -461,6 +493,9 @@
         switch (action) {
             case START_SEARCH_MODE:
                 // Bring the contact list fragment (and detail fragment if applicable) to the front
+                mFavoritesView.setVisibility(View.GONE);
+                mBrowserView.setVisibility(View.VISIBLE);
+                mDetailsView.setVisibility(View.VISIBLE);
                 FragmentTransaction ft = getFragmentManager().beginTransaction();
                 ft.show(mContactsFragment);
                 if (mContactDetailFragment != null) ft.show(mContactDetailFragment);
@@ -480,6 +515,7 @@
                     if (mContactDetailFragment != null) transaction.hide(mContactDetailFragment);
                     transaction.commit();
                 }
+                if (mSelectedTab != null) setSelectedTab(mSelectedTab);
                 break;
             case CHANGE_SEARCH_QUERY:
                 loadSearch(mActionBarAdapter.getQueryString());
diff --git a/src/com/android/contacts/detail/ContactDetailTabCarousel.java b/src/com/android/contacts/detail/ContactDetailTabCarousel.java
index a12106f..b253b25 100644
--- a/src/com/android/contacts/detail/ContactDetailTabCarousel.java
+++ b/src/com/android/contacts/detail/ContactDetailTabCarousel.java
@@ -39,16 +39,13 @@
  * TODO: Create custom views for the tabs so their width can be programatically set as 2/3 of the
  * screen width.
  */
-public class ContactDetailTabCarousel extends HorizontalScrollView
-        implements View.OnClickListener, OnTouchListener {
+public class ContactDetailTabCarousel extends HorizontalScrollView implements OnTouchListener {
     private static final String TAG = "ContactDetailTabCarousel";
 
-    private CheckBox mStarredView;
     private ImageView mPhotoView;
     private TextView mStatusView;
     private TextView mStatusDateView;
 
-    private Uri mContactUri;
     private Listener mListener;
 
     private View[] mTabs = new View[2];
@@ -157,8 +154,6 @@
      * from the outside to fully setup the View
      */
     public void loadData(ContactLoader.Result contactData) {
-        mContactUri = contactData.getLookupUri();
-
         View aboutView = findViewById(R.id.tab_about);
         View updateView = findViewById(R.id.tab_update);
 
@@ -187,17 +182,14 @@
         mTabs[0] = aboutTab;
         mTabs[1] = updatesTab;
 
-        // Retrieve the photo and star views for the "about" tab
+        // Retrieve the photo view for the "about" tab
         mPhotoView = (ImageView) aboutView.findViewById(R.id.photo);
-        mStarredView = (CheckBox) aboutView.findViewById(R.id.star);
-        mStarredView.setOnClickListener(this);
 
         // Retrieve the social update views for the "updates" tab
         mStatusView = (TextView) updateView.findViewById(R.id.status);
         mStatusDateView = (TextView) updateView.findViewById(R.id.status_date);
 
         ContactDetailDisplayUtils.setPhoto(mContext, contactData, mPhotoView);
-        ContactDetailDisplayUtils.setStarred(contactData, mStarredView);
         ContactDetailDisplayUtils.setSocialSnippetAndDate(mContext, contactData, mStatusView,
                 mStatusDateView);
     }
@@ -209,23 +201,6 @@
         mListener = listener;
     }
 
-    // TODO: The starred icon needs to move to the action bar.
-    @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.star: {
-                // Toggle "starred" state
-                // Make sure there is a contact
-                if (mContactUri != null) {
-                    Intent intent = ContactSaveService.createSetStarredIntent(
-                            getContext(), mContactUri, mStarredView.isChecked());
-                    getContext().startService(intent);
-                }
-                break;
-            }
-        }
-    }
-
     @Override
     public boolean onTouch(View v, MotionEvent event) {
         switch (event.getAction()) {
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index ba2794d..91792df 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -272,7 +272,9 @@
 
         // If anything was left unsaved, save it now but keep the editor open.
         if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING) {
-            save(SaveMode.RELOAD);
+            if (mStatus != SaveMode.JOIN) {
+                save(SaveMode.RELOAD);
+            }
         }
     }
 
diff --git a/src/com/android/contacts/list/ContactTileAdapter.java b/src/com/android/contacts/list/ContactTileAdapter.java
index feb308c..86f6b33 100644
--- a/src/com/android/contacts/list/ContactTileAdapter.java
+++ b/src/com/android/contacts/list/ContactTileAdapter.java
@@ -102,7 +102,7 @@
             DisplayType displayType) {
         mListener = listener;
         mContext = context;
-        mColumnCount = numCols;
+        mColumnCount = (displayType == DisplayType.FREQUENT_ONLY ? 1 : numCols);
         mDisplayType = displayType;
 
         bindColumnIndices();
@@ -112,6 +112,14 @@
         mPhotoManager = photoLoader;
     }
 
+    public void setColumnCount(int columnCount) {
+        mColumnCount = columnCount;
+    }
+
+    public void setDisplayType(DisplayType displayType) {
+        mDisplayType = displayType;
+    }
+
     /**
      * Sets the column indices for expected {@link Cursor}
      * based on {@link DisplayType}.
@@ -202,7 +210,6 @@
             // Adding Containter that has multi columns
             rowCount += getNumRows(mContacts.size());
         }
-
         // Adding Divider Row if Neccessary
         if (mDisplayType == DisplayType.STREQUENT && mContacts.size() > 0) rowCount++;
 
@@ -232,9 +239,8 @@
         if (contactIndex < mContacts2.size()) {
             contactList = mContacts2;
         } else {
-            if (mDisplayType == DisplayType.STREQUENT) {
-                contactIndex = (position - mDividerRowIndex - 1) * mColumnCount;
-
+            if (mDisplayType == DisplayType.STREQUENT ||
+                    mDisplayType == DisplayType.FREQUENT_ONLY) {
                 resultList.add(mContacts.get(position - mDividerRowIndex - 1));
                 return resultList;
             }
@@ -385,9 +391,9 @@
             for (int columnCounter = 0; columnCounter < columnCount; columnCounter++) {
                 ContactEntry entry =
                         columnCounter < list.size() ? list.get(columnCounter) : null;
-                addTileFromEntry(entry, columnCounter);
+                        addTileFromEntry(entry, columnCounter);
+                }
             }
-        }
 
         private void addTileFromEntry(ContactEntry entry, int tileIndex) {
             ContactTileView contactTile;
diff --git a/src/com/android/contacts/list/ContactTileView.java b/src/com/android/contacts/list/ContactTileView.java
index da1351f..883e3f0 100644
--- a/src/com/android/contacts/list/ContactTileView.java
+++ b/src/com/android/contacts/list/ContactTileView.java
@@ -45,7 +45,6 @@
     private ContactPhotoManager mPhotoManager = null;
     /**
      * Is set to true if the {@link ContactTileView} is a square.
-     * A {@link ViewType#REGULAR} is displayed as a square.
      */
     private boolean mIsSquare;
 
diff --git a/src/com/android/contacts/list/StrequentContactListFragment.java b/src/com/android/contacts/list/StrequentContactListFragment.java
index d226950..e0f0dc1 100644
--- a/src/com/android/contacts/list/StrequentContactListFragment.java
+++ b/src/com/android/contacts/list/StrequentContactListFragment.java
@@ -73,6 +73,14 @@
         getLoaderManager().restartLoader(LOADER_STREQUENT, null, mStrequentLoaderListener);
     }
 
+    public void setColumnCount(int columnCount) {
+        mAdapter.setColumnCount(columnCount);
+    }
+
+    public void setDisplayType(DisplayType displayType) {
+        mAdapter.setDisplayType(displayType);
+    }
+
     /**
      * The listener for the strequent meta data loader.
      */