Prevent showDialpad from adding multiple instances of fragments

Previously when the dialpad is shown the fragment manager is checked to decide whether to create a new fragment or not. This check does not account for pending transactions. If multiple ACTION_DIAL intents is received before the first showDialpad transaction is actually committed (due to the system lagging), multiple dialpad fragment will be added and cause crashes.

In this CL, the MainSearchController will hold on to the dialpad and search fragment instance, instead of querying the fragment manager.

TEST=manual - modify code to delay the commit. The timing is difficult to set up in tests.
Bug: 77540395
Test: manual - modify code to delay the commit. The timing is difficult to set up in tests.
PiperOrigin-RevId: 196197187
Change-Id: Ie649a9fba0ecfd8944781949c179ac8739930830
1 file changed