[Audiosharing] Disable the profile state change handling

on Connected devices page during audio sharing.
We have moved the handling to sysui via settingslib

Test: atest
Flag: com.android.settingslib.flags.promote_audio_sharing_for_second_auto_connected_lea_device
Bug: 395786392
Change-Id: I29dd105f9317f78d8d8dacbb3da72e745286e105
This commit is contained in:
Yiyi Shen
2025-02-28 14:58:57 +08:00
parent 0abe3f4e17
commit 85d20f33be
2 changed files with 127 additions and 30 deletions

View File

@@ -51,6 +51,8 @@ import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Looper;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.util.Pair;
@@ -201,8 +203,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void onStart_flagOff_doNothing() {
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.onStart(mLifecycleOwner);
verify(mEventManager, never()).registerCallback(any(BluetoothCallback.class));
verify(mDialogHandler, never()).registerCallbacks(any(Executor.class));
@@ -214,8 +216,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void onStart_flagOn_registerCallbacks() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.onStart(mLifecycleOwner);
verify(mEventManager).registerCallback(any(BluetoothCallback.class));
verify(mDialogHandler).registerCallbacks(any(Executor.class));
@@ -227,8 +229,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void onStop_flagOff_doNothing() {
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.onStop(mLifecycleOwner);
verify(mEventManager, never()).unregisterCallback(any(BluetoothCallback.class));
verify(mDialogHandler, never()).unregisterCallbacks();
@@ -238,8 +240,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void onStop_flagOn_unregisterCallbacks() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.onStop(mLifecycleOwner);
verify(mEventManager).unregisterCallback(any(BluetoothCallback.class));
verify(mDialogHandler).unregisterCallbacks();
@@ -249,16 +251,16 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void displayPreference_flagOff_doNothing() {
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.displayPreference(mScreen);
assertThat(mPreferenceGroup.isVisible()).isFalse();
verify(mBluetoothDeviceUpdater, never()).forceUpdate();
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void displayPreference_flagOn_updateDeviceList() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.displayPreference(mScreen);
assertThat(mPreferenceGroup.isVisible()).isFalse();
verify(mBluetoothDeviceUpdater).setPrefContext(mContext);
@@ -271,14 +273,14 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void getAvailabilityStatus_flagOff_returnUnSupported() {
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void getAvailabilityStatus_flagOn_returnSupported() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
}
@@ -314,6 +316,7 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void onProfileConnectionStateChanged_leaDeviceDisconnected_closeOpeningDialogsForIt() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT disconnected.
when(mDevice.isConnected()).thenReturn(true);
@@ -326,6 +329,21 @@ public class AudioSharingDevicePreferenceControllerTest {
verify(mDialogHandler).closeOpeningDialogsForLeaDevice(mCachedDevice);
}
@Test
@EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void onProfileConnectionStateChanged_leaDeviceDisconnected_broadcastOn_doNothing() {
when(mBroadcast.isEnabled(null)).thenReturn(true);
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT disconnected.
when(mDevice.isConnected()).thenReturn(true);
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice,
BluetoothAdapter.STATE_DISCONNECTED,
BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
verifyNoInteractions(mDialogHandler);
}
@Test
public void onProfileConnectionStateChanged_assistantProfileConnecting_doNothing() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
@@ -361,6 +379,7 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void onProfileConnectionStateChanged_assistantProfileConnected_handle() {
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connected
when(mDevice.isConnected()).thenReturn(true);
@@ -374,6 +393,22 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void onProfileConnectionStateChanged_assistantProfileConnected_broadcastOn_doNothing() {
when(mBroadcast.isEnabled(null)).thenReturn(true);
// Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connected
when(mDevice.isConnected()).thenReturn(true);
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice,
BluetoothAdapter.STATE_CONNECTED,
BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
verifyNoInteractions(mDialogHandler);
}
@Test
@DisableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void
onProfileConnectionStateChanged_nonLeaDeviceDisconnected_closeOpeningDialogsForIt() {
// Test when non-LEA device totally disconnected
@@ -386,6 +421,21 @@ public class AudioSharingDevicePreferenceControllerTest {
verify(mDialogHandler).closeOpeningDialogsForNonLeaDevice(mCachedDevice);
}
@Test
@EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void
onProfileConnectionStateChanged_nonLeaDeviceDisconnected_broadcastOn_doNothing() {
when(mBroadcast.isEnabled(null)).thenReturn(true);
// Test when non-LEA device totally disconnected
when(mLeAudioProfile.isEnabled(mDevice)).thenReturn(false);
doReturn(ImmutableList.of(mA2dpProfile)).when(mCachedDevice).getUiAccessibleProfiles();
doReturn(ImmutableList.of(mLeAudioProfile, mA2dpProfile)).when(mCachedDevice).getProfiles();
when(mCachedDevice.isConnected()).thenReturn(false);
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_DISCONNECTED, BluetoothProfile.A2DP);
verifyNoInteractions(mDialogHandler);
}
@Test
public void onProfileConnectionStateChanged_nonLeaNotFirstProfileConnected_doNothing() {
// Test when non-LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
@@ -402,6 +452,7 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@DisableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void onProfileConnectionStateChanged_nonLeaFirstProfileConnected_handle() {
// Test when non-LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
when(mDevice.isConnected()).thenReturn(true);
@@ -417,8 +468,26 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_PROMOTE_AUDIO_SHARING_FOR_SECOND_AUTO_CONNECTED_LEA_DEVICE)
public void
onProfileConnectionStateChanged_nonLeaFirstProfileConnected_broadcastOn_doNothing() {
when(mBroadcast.isEnabled(null)).thenReturn(true);
// Test when non-LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
when(mDevice.isConnected()).thenReturn(true);
when(mHeadsetProfile.getConnectionStatus(mDevice))
.thenReturn(BluetoothAdapter.STATE_DISCONNECTED);
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile))
.when(mCachedDevice)
.getUiAccessibleProfiles();
doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile)).when(mCachedDevice).getProfiles();
mController.onProfileConnectionStateChanged(
mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
verifyNoInteractions(mDialogHandler);
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_noDevice_doNothing() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
Intent intent = new Intent();
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, new Bundle());
doReturn(intent).when(mActivity).getIntent();
@@ -430,8 +499,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_profileNotReady_doNothing() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
when(mBroadcast.isProfileReady()).thenReturn(false);
Bundle arg = new Bundle();
arg.putParcelable(EXTRA_BLUETOOTH_DEVICE, mDevice);
@@ -447,8 +516,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_intentHandled_handle() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
Bundle arg = new Bundle();
arg.putParcelable(EXTRA_BLUETOOTH_DEVICE, mDevice);
Intent intent = new Intent();
@@ -465,8 +534,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_disconnectedDevice_connect() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
Bundle arg = new Bundle();
arg.putParcelable(EXTRA_BLUETOOTH_DEVICE, mDevice);
Intent intent = new Intent();
@@ -479,8 +548,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_connectedDevice_handle() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
Bundle arg = new Bundle();
arg.putParcelable(EXTRA_BLUETOOTH_DEVICE, mDevice);
Intent intent = new Intent();
@@ -494,8 +563,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void handleDeviceClickFromIntent_onServiceConnected_handle() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
Bundle arg = new Bundle();
arg.putParcelable(EXTRA_BLUETOOTH_DEVICE, mDevice);
Intent intent = new Intent();
@@ -570,10 +639,10 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING,
Flags.FLAG_ADOPT_PRIMARY_GROUP_MANAGEMENT_API})
@DisableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX)
public void testInCallState_showCallStateTitleAndSetActiveOnDeviceClick() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mSetFlagsRule.disableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX);
mSetFlagsRule.enableFlags(Flags.FLAG_ADOPT_PRIMARY_GROUP_MANAGEMENT_API);
Settings.Secure.putInt(mContext.getContentResolver(),
BLUETOOTH_LE_BROADCAST_PRIMARY_DEVICE_GROUP_ID,
BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
@@ -596,10 +665,10 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING,
Flags.FLAG_ADOPT_PRIMARY_GROUP_MANAGEMENT_API,
Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX})
public void testInCallState_enableHysteresisFix_setAndSaveActiveOnDeviceClick() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mSetFlagsRule.enableFlags(Flags.FLAG_AUDIO_SHARING_HYSTERESIS_MODE_FIX);
mSetFlagsRule.enableFlags(Flags.FLAG_ADOPT_PRIMARY_GROUP_MANAGEMENT_API);
Settings.Secure.putInt(mContext.getContentResolver(),
BLUETOOTH_LE_BROADCAST_PRIMARY_DEVICE_GROUP_ID,
BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
@@ -619,8 +688,8 @@ public class AudioSharingDevicePreferenceControllerTest {
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
public void testInNormalState_showNormalStateTitleAndDoNothingOnDeviceClick() {
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
mController.displayPreference(mScreen);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
@@ -636,6 +705,18 @@ public class AudioSharingDevicePreferenceControllerTest {
verify(mCachedDevice, never()).setActive();
}
@Test
public void onBluetoothStateChanged_stateOff_closeAllOpeningDialogs() {
mController.onBluetoothStateChanged(BluetoothAdapter.STATE_OFF);
verify(mDialogHandler).closeOpeningDialogsOtherThan("");
}
@Test
public void onBluetoothStateChanged_stateOn_doNothing() {
mController.onBluetoothStateChanged(BluetoothAdapter.STATE_ON);
verify(mDialogHandler, never()).closeOpeningDialogsOtherThan("");
}
@NonNull
private BluetoothDevicePreference createBluetoothDevicePreference() {
Drawable drawable = mock(Drawable.class);