[Audiosharing] Set temp bond metadata for just bonded lea buds in sharing
Test: atest Flag: com.android.settingslib.flags.enable_temporary_bond_devices_ui Bug: 392004799 Change-Id: I99e9955d00362125b7cbf54e2013c99dd2f9b457
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.bluetooth;
|
||||
|
||||
import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.EXTRA_BT_DEVICE_TO_AUTO_ADD_SOURCE;
|
||||
import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.EXTRA_PAIR_AND_JOIN_SHARING;
|
||||
import static com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingServiceConnection.METADATA_FAST_PAIR_CUSTOMIZED_FIELDS;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -36,6 +37,7 @@ import static org.robolectric.Shadows.shadowOf;
|
||||
import android.app.Activity;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothLeBroadcastReceiveState;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.bluetooth.BluetoothStatusCodes;
|
||||
import android.content.Context;
|
||||
@@ -44,6 +46,8 @@ import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
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.util.Pair;
|
||||
|
||||
@@ -62,9 +66,15 @@ import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
|
||||
import com.android.settingslib.flags.Flags;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
@@ -112,6 +122,14 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
@Mock
|
||||
private CachedBluetoothDeviceManager mDeviceManager;
|
||||
@Mock
|
||||
private LocalBluetoothProfileManager mProfileManager;
|
||||
@Mock
|
||||
private LocalBluetoothLeBroadcast mBroadcast;
|
||||
@Mock
|
||||
private LocalBluetoothLeBroadcastAssistant mAssistant;
|
||||
@Mock
|
||||
private CachedBluetoothDevice mCachedBluetoothDevice;
|
||||
@Mock
|
||||
private Drawable mDrawable;
|
||||
@@ -197,11 +215,13 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceBondStateChanged_bonded_pairAndJoinSharingDisabled_finish() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
|
||||
@DisableFlags(Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI)
|
||||
public void onDeviceBondStateChanged_bonded_notPairInSharing_finish() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(false);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ false, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDED);
|
||||
|
||||
verify(mFragment).finish();
|
||||
@@ -209,12 +229,14 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowDialogFragment.class)
|
||||
public void onDeviceBondStateChanged_bonded_pairAndJoinSharingEnabled_handle() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
|
||||
@DisableFlags(Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI)
|
||||
public void onDeviceBondStateChanged_bonded_shareThenPair_handle() {
|
||||
ShadowDialogFragment.reset();
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(true);
|
||||
setUpFragmentWithShareThenPairIntent(true);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDED);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
@@ -231,11 +253,37 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceBondStateChanged_bonding_pairAndJoinSharingDisabled_doNothing() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@Config(shadows = ShadowDialogFragment.class)
|
||||
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onDeviceBondStateChanged_bonded_pairAfterShare_handle() {
|
||||
ShadowDialogFragment.reset();
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(false);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ true);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDED);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
ProgressDialogFragment progressDialog = mFragment.mProgressDialog;
|
||||
assertThat(progressDialog).isNotNull();
|
||||
assertThat(progressDialog.getMessage()).isEqualTo(
|
||||
mContext.getString(R.string.progress_dialog_connect_device_content,
|
||||
TEST_DEVICE_ADDRESS));
|
||||
assertThat(
|
||||
ShadowDialogFragment.isIsShowing(ProgressDialogFragment.class.getName())).isTrue();
|
||||
verify(mFragment, never()).finish();
|
||||
|
||||
ShadowDialogFragment.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
|
||||
@DisableFlags(Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI)
|
||||
public void onDeviceBondStateChanged_bonding_notPairInSharing_doNothing() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ false, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDING);
|
||||
|
||||
verify(mBluetoothAdapter, never()).addOnMetadataChangedListener(any(BluetoothDevice.class),
|
||||
@@ -243,11 +291,13 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceBondStateChanged_bonding_pairAndJoinSharingEnabled_addListener() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
|
||||
@DisableFlags(Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI)
|
||||
public void onDeviceBondStateChanged_bonding_shareThenPair_addListener() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(true);
|
||||
setUpFragmentWithShareThenPairIntent(true);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDING);
|
||||
|
||||
verify(mBluetoothAdapter).addOnMetadataChangedListener(eq(mBluetoothDevice),
|
||||
@@ -256,8 +306,22 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceBondStateChanged_unbonded_pairAndJoinSharingDisabled_doNothing() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onDeviceBondStateChanged_bonding_pairAfterShare_addListener() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ true);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDING);
|
||||
|
||||
verify(mBluetoothAdapter).addOnMetadataChangedListener(eq(mBluetoothDevice),
|
||||
any(Executor.class),
|
||||
any(BluetoothAdapter.OnMetadataChangedListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onDeviceBondStateChanged_unbonded_notPairInSharing_doNothing() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_NONE);
|
||||
@@ -267,11 +331,13 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceBondStateChanged_unbonded_pairAndJoinSharingEnabled_removeListener() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
|
||||
@DisableFlags(Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI)
|
||||
public void onDeviceBondStateChanged_unbonded_shareThenPair_removeListener() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(true);
|
||||
setUpFragmentWithShareThenPairIntent(true);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDING);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_NONE);
|
||||
|
||||
@@ -280,8 +346,23 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onProfileConnectionStateChanged_deviceInSelectedListAndConnected_finish() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onDeviceBondStateChanged_unbonded_pairAfterShare_removeListener() {
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ true);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDING);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_NONE);
|
||||
|
||||
verify(mBluetoothAdapter).removeOnMetadataChangedListener(eq(mBluetoothDevice),
|
||||
any(BluetoothAdapter.OnMetadataChangedListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void
|
||||
onProfileConnectionStateChanged_deviceInSelectedListAndConnected_notInSharing_finish() {
|
||||
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_B);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(device);
|
||||
@@ -291,19 +372,22 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
|
||||
mFragment.onProfileConnectionStateChanged(mCachedBluetoothDevice,
|
||||
BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
verify(mFragment).finish();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowDialogFragment.class)
|
||||
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void
|
||||
onProfileConnectionStateChanged_deviceInSelectedListAndConnected_pairAndJoinSharing() {
|
||||
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
onProfileConnectionStateChanged_inSelectedListAndConnected_shareThenPair_handle() {
|
||||
ShadowDialogFragment.reset();
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
setUpFragmentWithPairAndJoinSharingIntent(true);
|
||||
BluetoothDevice device = spy(mBluetoothDevice);
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(device);
|
||||
mFragment.mSelectedList.add(device);
|
||||
setUpFragmentWithShareThenPairIntent(true);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ false);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDED);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
@@ -316,6 +400,7 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
verify(device).setMetadata(eq(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS), any());
|
||||
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mFragment.getActivity()).setResult(eq(Activity.RESULT_OK), captor.capture());
|
||||
Intent intent = captor.getValue();
|
||||
@@ -325,15 +410,44 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
BluetoothDevice.class)
|
||||
: null;
|
||||
assertThat(btDevice).isNotNull();
|
||||
assertThat(btDevice).isEqualTo(mBluetoothDevice);
|
||||
assertThat(btDevice).isEqualTo(device);
|
||||
verify(mFragment).finish();
|
||||
|
||||
ShadowDialogFragment.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = ShadowDialogFragment.class)
|
||||
@EnableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void
|
||||
onProfileConnectionStateChanged_inSelectedListAndConnected_pairAfterShare_handle() {
|
||||
ShadowDialogFragment.reset();
|
||||
BluetoothDevice device = spy(mBluetoothDevice);
|
||||
when(mCachedBluetoothDevice.getDevice()).thenReturn(device);
|
||||
mFragment.mSelectedList.add(device);
|
||||
setUpFragmentWithShareThenPairIntent(false);
|
||||
setUpAudioSharingStates(/* enabled = */ true, /* needSetTempBondMetadata = */ true);
|
||||
mFragment.onDeviceBondStateChanged(mCachedBluetoothDevice, BluetoothDevice.BOND_BONDED);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
when(mCachedBluetoothDevice.isConnected()).thenReturn(true);
|
||||
when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
|
||||
when(mCachedBluetoothDevice.isConnectedLeAudioBroadcastAssistantDevice()).thenReturn(true);
|
||||
when(mCachedBluetoothDevice.isConnectedVolumeControlDevice()).thenReturn(true);
|
||||
|
||||
mFragment.onProfileConnectionStateChanged(mCachedBluetoothDevice,
|
||||
BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
|
||||
shadowOf(Looper.getMainLooper()).idle();
|
||||
|
||||
verify(device).setMetadata(eq(METADATA_FAST_PAIR_CUSTOMIZED_FIELDS), any());
|
||||
verify(mFragment).finish();
|
||||
|
||||
ShadowDialogFragment.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onProfileConnectionStateChanged_deviceNotInSelectedList_doNothing() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_B);
|
||||
mFragment.mSelectedList.add(device);
|
||||
|
||||
@@ -347,8 +461,8 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onProfileConnectionStateChanged_deviceDisconnected_doNothing() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_B);
|
||||
mFragment.mSelectedList.add(mBluetoothDevice);
|
||||
mFragment.mSelectedList.add(device);
|
||||
@@ -363,8 +477,8 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onProfileConnectionStateChanged_deviceInPreferenceMapAndConnected_removed() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
final BluetoothDevicePreference preference =
|
||||
new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
|
||||
true, BluetoothDevicePreference.SortType.TYPE_FIFO);
|
||||
@@ -381,8 +495,8 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags({Flags.FLAG_ENABLE_LE_AUDIO_SHARING, Flags.FLAG_ENABLE_TEMPORARY_BOND_DEVICES_UI})
|
||||
public void onProfileConnectionStateChanged_deviceNotInPreferenceMap_doNothing() {
|
||||
mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
|
||||
final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
|
||||
final BluetoothDevicePreference preference =
|
||||
new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
|
||||
@@ -404,9 +518,9 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
// not crash
|
||||
}
|
||||
|
||||
private void setUpFragmentWithPairAndJoinSharingIntent(boolean enablePairAndJoinSharing) {
|
||||
private void setUpFragmentWithShareThenPairIntent(boolean enableShareThenPair) {
|
||||
Bundle args = new Bundle();
|
||||
args.putBoolean(EXTRA_PAIR_AND_JOIN_SHARING, enablePairAndJoinSharing);
|
||||
args.putBoolean(EXTRA_PAIR_AND_JOIN_SHARING, enableShareThenPair);
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
|
||||
FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class));
|
||||
@@ -420,8 +534,39 @@ public class BluetoothDevicePairingDetailBaseTest {
|
||||
Lifecycle lifecycle = mock(Lifecycle.class);
|
||||
when(lifecycle.getCurrentState()).thenReturn(Lifecycle.State.RESUMED);
|
||||
doReturn(lifecycle).when(mFragment).getLifecycle();
|
||||
mFragment.mShouldTriggerAudioSharingShareThenPairFlow =
|
||||
mFragment.shouldTriggerAudioSharingShareThenPairFlow();
|
||||
mFragment.mShouldTriggerShareThenPairFlow = mFragment.shouldTriggerShareThenPairFlow();
|
||||
}
|
||||
|
||||
private void setUpAudioSharingStates(boolean enabled, boolean needSetTempBondMetadata) {
|
||||
when(mLocalManager.getProfileManager()).thenReturn(mProfileManager);
|
||||
when(mProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
|
||||
when(mProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
|
||||
when(mLocalManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
|
||||
if (!enabled) {
|
||||
when(mBroadcast.isEnabled(null)).thenReturn(false);
|
||||
} else {
|
||||
when(mBroadcast.isEnabled(null)).thenReturn(true);
|
||||
when(mBroadcast.getLatestBroadcastId()).thenReturn(1);
|
||||
BluetoothDevice device1 = mock(BluetoothDevice.class);
|
||||
CachedBluetoothDevice cachedDevice1 = mock(CachedBluetoothDevice.class);
|
||||
when(mDeviceManager.findDevice(device1)).thenReturn(cachedDevice1);
|
||||
when(cachedDevice1.getGroupId()).thenReturn(1);
|
||||
when(cachedDevice1.getDevice()).thenReturn(device1);
|
||||
BluetoothLeBroadcastReceiveState state = mock(BluetoothLeBroadcastReceiveState.class);
|
||||
when(state.getBroadcastId()).thenReturn(1);
|
||||
when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(state));
|
||||
if (needSetTempBondMetadata) {
|
||||
when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(device1));
|
||||
} else {
|
||||
BluetoothDevice device2 = mock(BluetoothDevice.class);
|
||||
CachedBluetoothDevice cachedDevice2 = mock(CachedBluetoothDevice.class);
|
||||
when(mDeviceManager.findDevice(device2)).thenReturn(cachedDevice2);
|
||||
when(cachedDevice2.getGroupId()).thenReturn(2);
|
||||
when(cachedDevice2.getDevice()).thenReturn(device2);
|
||||
when(mAssistant.getAllConnectedDevices()).thenReturn(
|
||||
ImmutableList.of(device1, device2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestBluetoothDevicePairingDetailBase extends
|
||||
|
||||
Reference in New Issue
Block a user