Properly show dialpad fragment on first launch if needed

Bug: 10205058
Change-Id: If7eb79b77357a81b17bdff719939debd71544bc4
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index a0153ea..8cac17e 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -155,6 +155,7 @@
      * {@link PhoneNumberPickerFragment}).
      */
     private boolean mInSearchUi;
+    private boolean mFirstLaunch;
     private View mSearchViewContainer;
     private View mSearchViewCloseButton;
     private View mVoiceSearchButton;
@@ -234,6 +235,8 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        mFirstLaunch = true;
+
         final Intent intent = getIntent();
         fixIntent(intent);
 
@@ -265,8 +268,6 @@
         mBottomPaddingView = findViewById(R.id.dialtacts_bottom_padding);
         prepareSearchView();
 
-        displayFragment(intent);
-
         if (UI.FILTER_CONTACTS_ACTION.equals(intent.getAction())
                 && savedInstanceState == null) {
             setupFilterText(intent);
@@ -295,6 +296,11 @@
                 TAG_SHOW_ALL_CONTACTS_FRAGMENT);
         mShowAllContactsFragment.setOnPhoneNumberPickerActionListener(
                 mPhoneNumberPickerActionListener);
+
+        if (mFirstLaunch) {
+            displayFragment(getIntent());
+        }
+        mFirstLaunch = false;
     }
 
     @Override
@@ -605,8 +611,7 @@
             return;
         }
 
-        if ((mDialpadFragment != null && phoneIsInUse())
-                || isDialIntent(intent)) {
+        if (mDialpadFragment != null && (phoneIsInUse() || isDialIntent(intent))) {
             mDialpadFragment.setStartedFromNewIntent(true);
             // TODO krelease: This should use showDialpadFragment(false) to avoid animating
             // the dialpad in. Need to fix the onPreDrawListener in NewDialpadFragment first.