Merge "[RESTRICT AUTOMERGE][CarTelemetryService] Add memory metrics test to kitchen sink" into sc-v2-dev
diff --git a/service/src/com/android/car/pm/CarPackageManagerService.java b/service/src/com/android/car/pm/CarPackageManagerService.java
index e8e4315..fb11fd8 100644
--- a/service/src/com/android/car/pm/CarPackageManagerService.java
+++ b/service/src/com/android/car/pm/CarPackageManagerService.java
@@ -1308,7 +1308,8 @@
 
     private void blockTopActivityIfNecessary(TopTaskInfoContainer topTask) {
         synchronized (mLock) {
-            if (mTopActivityWithDialogPerDisplay.contains(topTask.displayId)
+            if (!topTask.topActivity.equals(mActivityBlockingActivity)
+                    && mTopActivityWithDialogPerDisplay.contains(topTask.displayId)
                     && !topTask.topActivity.equals(
                             mTopActivityWithDialogPerDisplay.get(topTask.displayId))) {
                 // Clear top activity-with-dialog if the activity has changed on this display.
diff --git a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
index b8c4eab..0978d74 100644
--- a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
+++ b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
@@ -29,6 +29,7 @@
 import android.app.AlertDialog;
 import android.app.UiAutomation;
 import android.car.Car;
+import android.car.content.pm.CarPackageManager;
 import android.car.drivingstate.CarDrivingStateEvent;
 import android.car.drivingstate.CarDrivingStateManager;
 import android.content.ComponentName;
@@ -67,6 +68,7 @@
     private static final long ACTIVITY_TIMEOUT_MS = 5000;
 
     private CarDrivingStateManager mCarDrivingStateManager;
+    private CarPackageManager mCarPackageManager;
 
     private UiDevice mDevice;
 
@@ -78,6 +80,8 @@
         Car car = Car.createCar(getContext());
         mCarDrivingStateManager = (CarDrivingStateManager)
                 car.getCarManager(Car.CAR_DRIVING_STATE_SERVICE);
+        mCarPackageManager = (CarPackageManager)
+                car.getCarManager(Car.PACKAGE_SERVICE);
         assertNotNull(mCarDrivingStateManager);
 
         Configurator.getInstance()
@@ -150,6 +154,10 @@
                 CarAppActivity.class.getSimpleName())),
                 UI_TIMEOUT_MS)).isNotNull();
         assertBlockingActivityNotFound();
+        assertThat(mCarPackageManager.isActivityDistractionOptimized(
+                getTestContext().getPackageName(),
+                CarAppActivity.class.getName()
+        )).isTrue();
 
         getContext().sendBroadcast(new Intent().setAction(ACTION_SHOW_DIALOG));
         assertThat(mDevice.wait(Until.findObject(By.text(DoActivity.DIALOG_TITLE)),
@@ -157,6 +165,10 @@
 
         assertThat(mDevice.wait(Until.findObject(By.res(ACTIVITY_BLOCKING_ACTIVITY_TEXTVIEW_ID)),
                 UI_TIMEOUT_MS)).isNotNull();
+        assertThat(mCarPackageManager.isActivityDistractionOptimized(
+                getTestContext().getPackageName(),
+                CarAppActivity.class.getName()
+        )).isFalse();
     }
 
     @Test