From f83103ed8b4f57aec64d39dd530a04d3e45f7fc9 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 12 May 2023 15:39:01 +0200 Subject: [PATCH] AudioDeviceInventory: better error handling in clearDevicesRole Return an error when no role has been set for a given device to match the API documentation. Test: atest AudioServiceHostTest#testPreferredDeviceRouting Test: atet AudioServiceHostTest#testPreferredDeviceRoutingForCapturePres Bug: 280929860 Change-Id: I462eb3a1ad0eb9d606279b6b62ce2cfb6b059b7f --- .../java/com/android/server/audio/AudioDeviceInventory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java index b70c3e48b6e6c..58c7326a300c8 100644 --- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java +++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java @@ -1100,7 +1100,8 @@ public class AudioDeviceInventory { synchronized (rolesMap) { Pair key = new Pair<>(useCase, role); if (!rolesMap.containsKey(key)) { - return AudioSystem.SUCCESS; + // trying to clear a role for a device that wasn't set + return AudioSystem.BAD_VALUE; } final int status = asi.deviceRoleAction(useCase, role, null); if (status == AudioSystem.SUCCESS) {