Hide unnecessary menus when launched via DIAL intent

ViewPager#getCurrentItem() returns "tabIndex" after
ViewPager#setCurrentItem(tabIndex, false), so we need to preserve
the previous value.

TESTED (using phone devices with/without a hard menu key)
- swipe actions do not corrupt menus
- tab clicks do not corrupt menus
- DIAL intent corretly shows/hides menus
- Menus aren't corrupted in Dialpad Chooser

Bug: 5118757
Change-Id: Id857a2d7ac5a007db65b20f80270a07ea527ba7f
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index b6dfbfa..12709c8 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -568,13 +568,14 @@
         } else {
             tabIndex = mLastManuallySelectedFragment;
         }
+
+        final int previousItemIndex = mViewPager.getCurrentItem();
         mViewPager.setCurrentItem(tabIndex, false /* smoothScroll */);
-        if (mViewPager.getCurrentItem() == tabIndex) {
-            mPageChangeListener.setCurrentPosition(tabIndex);
-            sendFragmentVisibilityChange(tabIndex, true);
-        } else {
-            getActionBar().selectTab(getActionBar().getTabAt(tabIndex));
+        if (previousItemIndex != tabIndex) {
+            sendFragmentVisibilityChange(previousItemIndex, false);
         }
+        mPageChangeListener.setCurrentPosition(tabIndex);
+        sendFragmentVisibilityChange(tabIndex, true);
 
         // Restore to the previous manual selection
         mLastManuallySelectedFragment = savedTabIndex;