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
This commit is contained in:
jasonwshsu
2022-08-31 17:15:34 +08:00
parent 552e7782e9
commit d1aa18633e
4 changed files with 39 additions and 5 deletions

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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(

View File

@@ -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();
}
}