Prevent crash when dialpad animation ends after activity is saved.

Bug: 77484989
Test: TAP
PiperOrigin-RevId: 191677909
Change-Id: If49a357a9ba158cd740eb789befd2ff802f670d4
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index 2279d56..b04e7b1 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -50,6 +50,7 @@
 import com.android.dialer.searchfragment.list.NewSearchFragment;
 import com.android.dialer.searchfragment.list.NewSearchFragment.SearchFragmentListener;
 import com.android.dialer.smartdial.util.SmartDialNameMatcher;
+import com.android.dialer.util.TransactionSafeActivity;
 import com.google.common.base.Optional;
 import java.util.ArrayList;
 import java.util.List;
@@ -78,7 +79,7 @@
   private static final String DIALPAD_FRAGMENT_TAG = "dialpad_fragment_tag";
   private static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag";
 
-  private final AppCompatActivity activity;
+  private final TransactionSafeActivity activity;
   private final BottomNavBar bottomNav;
   private final FloatingActionButton fab;
   private final MainToolbar toolbar;
@@ -97,7 +98,7 @@
   private boolean requestingPermission;
 
   public MainSearchController(
-      AppCompatActivity activity,
+      TransactionSafeActivity activity,
       BottomNavBar bottomNav,
       FloatingActionButton fab,
       MainToolbar toolbar,
@@ -201,7 +202,8 @@
 
           @Override
           public void onAnimationEnd(Animation animation) {
-            if (!(activity.isFinishing() || activity.isDestroyed())) {
+            if (activity.isSafeToCommitTransactions()
+                && !(activity.isFinishing() || activity.isDestroyed())) {
               activity.getFragmentManager().beginTransaction().hide(dialpadFragment).commit();
             }
           }