Exit multiselect mode when opening the dialpad.

Bug: 79183384
Test: manual
PiperOrigin-RevId: 196344851
Change-Id: I9f5c0e52cb4efe9e63e2c19a4f62ee0b9a23412f
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index c819fec..06f094d 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -46,6 +46,7 @@
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
+import android.view.ActionMode;
 import android.view.DragEvent;
 import android.view.Gravity;
 import android.view.Menu;
@@ -1532,7 +1533,7 @@
   }
 
   @Override
-  public void onActionModeStateChanged(boolean isEnabled) {
+  public void onActionModeStateChanged(ActionMode mode, boolean isEnabled) {
     isMultiSelectModeEnabled = isEnabled;
   }
 
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index c2c753e..450e5ea 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -178,7 +178,7 @@
           MenuInflater inflater = mode.getMenuInflater();
           inflater.inflate(R.menu.actionbar_delete, menu);
           multiSelectRemoveView.showMultiSelectRemoveView(true);
-          actionModeStateChangedListener.onActionModeStateChanged(true);
+          actionModeStateChangedListener.onActionModeStateChanged(mode, true);
           return true;
         }
 
@@ -216,7 +216,7 @@
           selectAllMode = false;
           deselectAllMode = false;
           multiSelectRemoveView.showMultiSelectRemoveView(false);
-          actionModeStateChangedListener.onActionModeStateChanged(false);
+          actionModeStateChangedListener.onActionModeStateChanged(null, false);
           notifyDataSetChanged();
         }
       };
@@ -1511,7 +1511,7 @@
   /** Interface used to allow single tap multi select for contact photos. */
   public interface OnActionModeStateChangedListener {
 
-    void onActionModeStateChanged(boolean isEnabled);
+    void onActionModeStateChanged(ActionMode mode, boolean isEnabled);
 
     boolean isActionModeStateEnabled();
   }
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index 2d6b0a6..16f46c1 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -48,6 +48,7 @@
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.text.method.LinkMovementMethod;
+import android.view.ActionMode;
 import android.view.DragEvent;
 import android.view.View;
 import android.widget.ImageView;
@@ -255,6 +256,10 @@
         v -> {
           Logger.get(activity).logImpression(DialerImpression.Type.MAIN_CLICK_FAB_TO_OPEN_DIALPAD);
           searchController.showDialpad(true);
+          if (callLogAdapterOnActionModeStateChangedListener.isEnabled) {
+            LogUtil.i("OldMainActivityPeer.onFabClicked", "closing multiselect");
+            callLogAdapterOnActionModeStateChangedListener.actionMode.finish();
+          }
         });
 
     MainToolbar toolbar = activity.findViewById(R.id.toolbar);
@@ -798,9 +803,11 @@
       implements CallLogAdapter.OnActionModeStateChangedListener {
 
     private boolean isEnabled;
+    private ActionMode actionMode;
 
     @Override
-    public void onActionModeStateChanged(boolean isEnabled) {
+    public void onActionModeStateChanged(ActionMode actionMode, boolean isEnabled) {
+      this.actionMode = actionMode;
       this.isEnabled = isEnabled;
     }