From f5cc663a8adad055c46294b1cd777bb845ef6690 Mon Sep 17 00:00:00 2001 From: Chris Antol Date: Thu, 9 May 2024 01:25:24 +0000 Subject: [PATCH] Fix NPE in AudioSwitchPreferenceController Test: Unit Test to verify nullness Bug: 338892614 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7ac80f0a0a69e99ec3603e9157cd5a2b20509e85) Merged-In: Ic97d1a6269a6d98ffd15a9b512f6ae24ff1c5b5e Change-Id: Ic97d1a6269a6d98ffd15a9b512f6ae24ff1c5b5e --- .../settings/sound/AudioSwitchPreferenceController.java | 4 ++++ .../sound/AudioOutputSwitchPreferenceControllerTest.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java index b785210f973..5938362a14e 100644 --- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java +++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java @@ -242,6 +242,10 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont return connectedDevices; } final List devices = leAudioProfile.getConnectedDevices(); + if (devices == null) { + Log.d(TAG, "No connected LeAudioProfile devices"); + return connectedDevices; + } for (BluetoothDevice device : devices) { if (device.isConnected() && isDeviceInCachedList(device)) { connectedDevices.add(device); diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java index a272d9c8ac3..91fd33da7b0 100644 --- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java @@ -516,6 +516,15 @@ public class AudioOutputSwitchPreferenceControllerTest { assertThat(mEmptyDevices).containsExactly(connectedBtLeAduioDevice1); } + @Test + public void getConnectedLeAudioDevices_nullConnectedDevices_returnEmptyList() { + when(mLeAudioProfile.getConnectedDevices()).thenReturn(null); + + List connectedDevices = mController.getConnectedLeAudioDevices(); + + assertThat(connectedDevices.isEmpty()).isTrue(); + } + @Test public void findActiveLeAudioDevice_noActiveDevice_returnNull() { mLeAudioActiveDevices.clear();