From d1aa18633e1b1d370f05b127f1fdceba0f86f651 Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Wed, 31 Aug 2022 17:15:34 +0800 Subject: [PATCH] Add missing callback for onServiceDisconnected() * Add in A2dpProfile and HearingAidProfile. They have callServiceConnectedListeners() but did not have disconnect part. Bug: 243489972 Test: atest HearingAidProfile A2dpProfile Change-Id: Ia3d0a44ff065cafc9fed70c2648ac69d9de0e5b7 --- .../settingslib/bluetooth/A2dpProfile.java | 5 +++-- .../bluetooth/HearingAidProfile.java | 5 +++-- .../settingslib/bluetooth/A2dpProfileTest.java | 16 ++++++++++++++++ .../bluetooth/HearingAidProfileTest.java | 18 +++++++++++++++++- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java index b64dcca63ac95..91b852ab9f678 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java @@ -81,12 +81,13 @@ public class A2dpProfile implements LocalBluetoothProfile { device.onProfileStateChanged(A2dpProfile.this, BluetoothProfile.STATE_CONNECTED); device.refresh(); } - mIsProfileReady=true; + mIsProfileReady = true; mProfileManager.callServiceConnectedListeners(); } public void onServiceDisconnected(int profile) { - mIsProfileReady=false; + mIsProfileReady = false; + mProfileManager.callServiceDisconnectedListeners(); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java index a491455da9631..e22f3f0e720d8 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java @@ -113,12 +113,13 @@ public class HearingAidProfile implements LocalBluetoothProfile { // Check current list of CachedDevices to see if any are Hearing Aid devices. mDeviceManager.updateHearingAidsDevices(); - mIsProfileReady=true; + mIsProfileReady = true; mProfileManager.callServiceConnectedListeners(); } public void onServiceDisconnected(int profile) { - mIsProfileReady=false; + mIsProfileReady = false; + mProfileManager.callServiceDisconnectedListeners(); } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java index bb6b293b0c27b..a252f522261ce 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpProfileTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.bluetooth.BluetoothA2dp; @@ -78,6 +79,21 @@ public class A2dpProfileTest { .thenReturn(Arrays.asList(mDevice)); } + + @Test + public void onServiceConnected_isProfileReady() { + assertThat(mProfile.isProfileReady()).isTrue(); + verify(mProfileManager).callServiceConnectedListeners(); + } + + @Test + public void onServiceDisconnected_profileNotReady() { + mServiceListener.onServiceDisconnected(BluetoothProfile.A2DP); + + assertThat(mProfile.isProfileReady()).isFalse(); + verify(mProfileManager).callServiceDisconnectedListeners(); + } + @Test public void supportsHighQualityAudio() { when(mBluetoothA2dp.isOptionalCodecsSupported(mDevice)).thenReturn( diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java index be3a51788d249..101a6cdb7e14f 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidProfileTest.java @@ -18,6 +18,7 @@ package com.android.settingslib.bluetooth; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.bluetooth.BluetoothAdapter; @@ -66,7 +67,6 @@ public class HearingAidProfileTest { mProfile = new HearingAidProfile(context, mDeviceManager, mProfileManager); mServiceListener = mShadowBluetoothAdapter.getServiceListener(); - mServiceListener.onServiceConnected(BluetoothProfile.HEADSET, mService); } @Test @@ -74,4 +74,20 @@ public class HearingAidProfileTest { assertThat(mProfile.setActiveDevice(null)).isTrue(); assertThat(mProfile.setActiveDevice(mBluetoothDevice)).isTrue(); } + + @Test + public void onServiceConnected_isProfileReady() { + mServiceListener.onServiceConnected(BluetoothProfile.HEARING_AID, mService); + + assertThat(mProfile.isProfileReady()).isTrue(); + verify(mProfileManager).callServiceConnectedListeners(); + } + + @Test + public void onServiceDisconnected_profileNotReady() { + mServiceListener.onServiceDisconnected(BluetoothProfile.HEARING_AID); + + assertThat(mProfile.isProfileReady()).isFalse(); + verify(mProfileManager).callServiceDisconnectedListeners(); + } }