diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index d9a63fa..755b335 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -907,8 +907,7 @@
 
   @Override
   public void onCallPlacedFromDialpad() {
-    hideDialpadFragment(false /* animate */, true /*clearDialpad */);
-    exitSearchUi();
+    mClearSearchOnPause = true;
   }
 
   @Override
@@ -1021,9 +1020,8 @@
   private void hideDialpadAndSearchUi() {
     if (mIsDialpadShown) {
       hideDialpadFragment(false, true);
-    } else {
-      exitSearchUi();
     }
+    exitSearchUi();
   }
 
   private void prepareVoiceSearchButton() {
@@ -1678,11 +1676,9 @@
   }
 
   @Override
-  public void onCallPlaced() {
-    if (mIsDialpadShown) {
-      hideDialpadFragment(false, true);
-    }
-    exitSearchUi();
+  public void onCallPlacedFromSearch() {
+    DialerUtils.hideInputMethod(mParentLayout);
+    mClearSearchOnPause = true;
   }
 
   protected int getPreviouslySelectedTabIndex() {
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index df27146..9a96b4a 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -507,7 +507,7 @@
         new CallIntentBuilder(phoneNumber, callSpecificAppData)
             .setIsVideoCall(isVideoCall)
             .setAllowAssistedDial(allowAssistedDial));
-    FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlaced();
+    FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlacedFromSearch();
   }
 
   @Override
@@ -516,7 +516,7 @@
         .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH);
     Intent intent = DuoComponent.get(getContext()).getDuo().getIntent(getContext(), phoneNumber);
     getActivity().startActivityForResult(intent, ActivityRequestCodes.DIALTACTS_DUO);
-    FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlaced();
+    FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onCallPlacedFromSearch();
   }
 
   @Override
@@ -536,6 +536,6 @@
     boolean onSearchListTouch(MotionEvent event);
 
     /** Called when a call is placed from the search fragment. */
-    void onCallPlaced();
+    void onCallPlacedFromSearch();
   }
 }
