Exclude HDMI from available communication devices list.

HDMI device is considered as available communication device when
connected. However, they may not be picked by default policy engine for
communication. In that case, HDMI is excluded in the available
communication devices list when running test for non default device for
strategy.

Bug: 282807986
Test: atest NonDefaultDeviceForStrategyTest

Change-Id: Ibc76526d879e873374e7a45d2fdf0144f84ead72
Merged-In: Ibc76526d879e873374e7a45d2fdf0144f84ead72
(cherry picked from commit c6a2ca2fc1c65de7c1e161c0a76bb71e3d760c5b)
diff --git a/tests/tests/media/audio/src/android/media/audio/cts/NonDefaultDeviceForStrategyTest.java b/tests/tests/media/audio/src/android/media/audio/cts/NonDefaultDeviceForStrategyTest.java
index fb8638e..a47e690 100644
--- a/tests/tests/media/audio/src/android/media/audio/cts/NonDefaultDeviceForStrategyTest.java
+++ b/tests/tests/media/audio/src/android/media/audio/cts/NonDefaultDeviceForStrategyTest.java
@@ -40,6 +40,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.HashSet;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executors;
@@ -56,6 +57,13 @@
             .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION).build();
     private static final int TEST_TIMING_TOLERANCE_MS = 100;
 
+    /**
+     * Device types that are communication devices but may not be picked by default engine.
+     */
+    private static final HashSet<Integer> EXCLUDED_COMMUNICATION_DEVICE_TYPES = new HashSet<>() {{
+            add(AudioDeviceInfo.TYPE_HDMI);
+        }};
+
     private AudioManager mAudioManager;
     private List<AudioProductStrategy> mStrategies;
     private AudioProductStrategy mStrategyForMedia;
@@ -184,6 +192,8 @@
     @Test
     public void testSetNonDefaultDeviceRouting() throws Exception {
         List<AudioDeviceInfo> availableDevices = mAudioManager.getAvailableCommunicationDevices();
+        availableDevices.removeIf(
+                device -> EXCLUDED_COMMUNICATION_DEVICE_TYPES.contains(device.getType()));
         assumeTrue("Skip test: less than 2 available communication devices",
                 availableDevices.size() > 1);
 
@@ -208,6 +218,8 @@
     @Test
     public void testNonDefaultDeviceListener() throws Exception {
         List<AudioDeviceInfo> availableDevices = mAudioManager.getAvailableCommunicationDevices();
+        availableDevices.removeIf(
+                device -> EXCLUDED_COMMUNICATION_DEVICE_TYPES.contains(device.getType()));
         assumeTrue("Skip test: less than 2 available communication devices",
                 availableDevices.size() > 1);