Fix tabs when using ContactsUnavailableFragment

Also fix landscape tabs when opening the app from landscape
launcher.

Bug: 16516327
Change-Id: Id930dd1aa8d1a9001d7c7901a5822ebbf4cfa2db
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index e27419a..6a5c1cb 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -311,10 +311,9 @@
     private void update(boolean skipAnimation) {
         final boolean isIconifiedChanging
                 = (mSearchContainer.getParent() == null) == mSearchMode;
-        mToolbar.removeView(mLandscapeTabs);
         if (isIconifiedChanging && !skipAnimation) {
+            mToolbar.removeView(mLandscapeTabs);
             if (mSearchMode) {
-                mToolbar.removeView(mLandscapeTabs);
                 addSearchContainer();
                 mSearchContainer.setAlpha(0);
                 mSearchContainer.animate().alpha(1);
@@ -336,9 +335,9 @@
             return;
         }
         if (isIconifiedChanging && skipAnimation) {
+            mToolbar.removeView(mLandscapeTabs);
             if (mSearchMode) {
                 setPortraitTabHeight(0);
-                mToolbar.removeView(mLandscapeTabs);
                 addSearchContainer();
             } else {
                 setPortraitTabHeight(mMaxPortraitTabHeight);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 7c0b14b..261f8e1 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -580,6 +580,10 @@
                     mContactsUnavailableFragment.setMessageText(R.string.noContacts, -1);
                     break;
             }
+            // When using the mContactsUnavailableFragment the ViewPager doesn't contain two views.
+            // Therefore, we have to trick the ViewPagerTabs into thinking we have changed tabs
+            // when the mContactsUnavailableFragment changes. Otherwise the tab strip won't move.
+            mViewPagerTabs.onPageScrolled(tab, 0, 0);
         }
     }