Do no preload dialpad fragment when opening search through search bar.
If the dialpad is preloaded it steals focus from the search bar. Aside
from this, I believe this change also caused other regressions and makes
the code harder to understand.
Test: tap
PiperOrigin-RevId: 185883795
Change-Id: Idbaca1df50ed02a698eb454cbb9de26a11e35f05
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index e0d42ab..9b734f4 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -269,15 +269,12 @@
mainActivity.getFragmentManager().beginTransaction().remove(getSearchFragment()).commit();
// Clear the dialpad so the phone number isn't persisted between search sessions.
- getDialpadFragment().clearDialpad();
+ if (getDialpadFragment() != null) {
+ getDialpadFragment().clearDialpad();
+ }
}
- /**
- * Returns {@link DialpadFragment}.
- *
- * <p>Unless this method is being called for the first time in {@link #openSearch(Optional)} or
- * {@link #showDialpad(boolean)}, it should never return null.
- */
+ @Nullable
protected DialpadFragment getDialpadFragment() {
return (DialpadFragment)
mainActivity.getFragmentManager().findFragmentByTag(DIALPAD_FRAGMENT_TAG);
@@ -334,14 +331,6 @@
transaction.show(getSearchFragment());
}
- // Add the dialpad fragment but keep it hidden
- if (getDialpadFragment() == null) {
- DialpadFragment dialpadFragment = new DialpadFragment();
- transaction
- .add(R.id.dialpad_fragment_container, dialpadFragment, DIALPAD_FRAGMENT_TAG)
- .hide(dialpadFragment);
- }
-
transaction.commit();
}