From 1bf730093c5460d3d93749bc151e9d3199edea48 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Tue, 18 Sep 2018 15:07:49 -0700 Subject: [PATCH] Fix incorrect API invoke for BT profiles When hearing aid device has been set active, we shouldn't invoke 1. a2dpProfile.setActiveDevice() 2. hfpProfile.setActiveDevice() Change-Id: Ie13dea041dd98d0cb9d913e1f28574b300095db9 Fixes: 113625278 Test: RunSettingsRoboTests --- .../sound/HandsFreeProfileOutputPreferenceController.java | 7 ++----- .../settings/sound/MediaOutputPreferenceController.java | 7 ++----- .../HandsFreeProfileOutputPreferenceControllerTest.java | 3 +++ .../sound/MediaOutputPreferenceControllerTest.java | 3 +++ 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java index 0b50f5f2d75..a02c0b28b13 100644 --- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java +++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java @@ -93,12 +93,9 @@ public class HandsFreeProfileOutputPreferenceController extends if (hapProfile != null && hfpProfile != null && device == null) { hfpProfile.setActiveDevice(null); hapProfile.setActiveDevice(null); - return; - } - if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) { + } else if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) { hapProfile.setActiveDevice(device); - } - if (hfpProfile != null) { + } else if (hfpProfile != null) { hfpProfile.setActiveDevice(device); } } diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java index 8704243582c..2ac460cf61c 100644 --- a/src/com/android/settings/sound/MediaOutputPreferenceController.java +++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java @@ -106,12 +106,9 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro if (hapProfile != null && a2dpProfile != null && device == null) { hapProfile.setActiveDevice(null); a2dpProfile.setActiveDevice(null); - return; - } - if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) { + } else if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) { hapProfile.setActiveDevice(device); - } - if (a2dpProfile != null) { + } else if (a2dpProfile != null) { a2dpProfile.setActiveDevice(device); } } diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java index e2fc779e201..58df2d2014d 100644 --- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java @@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -179,6 +180,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { mController.setActiveBluetoothDevice(mLeftBluetoothHapDevice); verify(mHearingAidProfile).setActiveDevice(mLeftBluetoothHapDevice); + verify(mHeadsetProfile, never()).setActiveDevice(mLeftBluetoothHapDevice); } /** @@ -192,6 +194,7 @@ public class HandsFreeProfileOutputPreferenceControllerTest { mController.setActiveBluetoothDevice(mBluetoothDevice); verify(mHeadsetProfile).setActiveDevice(mBluetoothDevice); + verify(mHearingAidProfile, never()).setActiveDevice(mBluetoothDevice); } /** diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java index d2f5f1acc88..9e1ac3d6183 100644 --- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java @@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -180,6 +181,7 @@ public class MediaOutputPreferenceControllerTest { mController.setActiveBluetoothDevice(mLeftBluetoothHapDevice); verify(mHearingAidProfile).setActiveDevice(mLeftBluetoothHapDevice); + verify(mA2dpProfile, never()).setActiveDevice(mLeftBluetoothHapDevice); } /** @@ -193,6 +195,7 @@ public class MediaOutputPreferenceControllerTest { mController.setActiveBluetoothDevice(mBluetoothDevice); verify(mA2dpProfile).setActiveDevice(mBluetoothDevice); + verify(mHearingAidProfile, never()).setActiveDevice(mBluetoothDevice); } /**