Dismiss voice plate when the foreground DA is shown

Fix: 203571849
Test: Manual
Change-Id: I5c71820247e1883774fd5362944dcb840d6a384a
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fcf469c..e1daa1c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -54,6 +54,8 @@
     <uses-permission android:name="android.permission.MONITOR_INPUT"/>
     <!-- Needed to use TYPE_APPLICATION_OVERLAY window type to display title bar. -->
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+    <!-- Permission to start a voice interaction service. -->
+    <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
 
     <!-- To connect to media browser services in other apps, media browser clients
     that target Android 11 need to add the following in their manifest -->
diff --git a/src/com/android/car/carlauncher/displayarea/CarDisplayAreaController.java b/src/com/android/car/carlauncher/displayarea/CarDisplayAreaController.java
index 589c92e..0f82922 100644
--- a/src/com/android/car/carlauncher/displayarea/CarDisplayAreaController.java
+++ b/src/com/android/car/carlauncher/displayarea/CarDisplayAreaController.java
@@ -64,6 +64,7 @@
 import com.android.car.carlauncher.AppGridActivity;
 import com.android.car.carlauncher.ControlBarActivity;
 import com.android.car.carlauncher.R;
+import com.android.internal.app.AssistUtils;
 import com.android.wm.shell.common.SyncTransactionQueue;
 
 import java.util.HashMap;
@@ -132,6 +133,7 @@
     private View mTitleBarView;
     private Context mApplicationContext;
     private int mForegroundDisplayTop;
+    private AssistUtils mAssistUtils;
 
     /**
      * The WindowContext that is registered with {@link #mTitleBarWindowManager} with options to
@@ -192,6 +194,7 @@
         mAssistantVoicePlateActivityName = ComponentName.unflattenFromString(
                 applicationContext.getResources().getString(
                         R.string.config_assistantVoicePlateActivity));
+        mAssistUtils = new AssistUtils(applicationContext);
 
         // Get bottom nav bar height.
         Resources resources = applicationContext.getResources();
@@ -425,6 +428,12 @@
         if (isVoicePlate) {
             return;
         }
+
+        // Check is there is an existing session running for assist, cancel it.
+        if (mAssistUtils.isSessionRunning()) {
+            mAssistUtils.hideCurrentSession();
+        }
+
         if (isHostingDefaultApplicationDisplayAreaVisible() && !isMaps) {
             if (mForegroundDAComponentsVisibilityMap.containsKey(
                     componentName.flattenToShortString())