Merge "Fix java crash" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0ae316971f
@@ -851,11 +851,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
|
||||
if (BluetoothUuid.containsAnyUuid(uuids, PbapServerProfile.PBAB_CLIENT_UUIDS)) {
|
||||
// The pairing dialog now warns of phone-book access for paired devices.
|
||||
// No separate prompt is displayed after pairing.
|
||||
final BluetoothClass bluetoothClass = mDevice.getBluetoothClass();
|
||||
if (mDevice.getPhonebookAccessPermission() == BluetoothDevice.ACCESS_UNKNOWN) {
|
||||
if (mDevice.getBluetoothClass().getDeviceClass()
|
||||
== BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE ||
|
||||
mDevice.getBluetoothClass().getDeviceClass()
|
||||
== BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET) {
|
||||
if (bluetoothClass != null && (bluetoothClass.getDeviceClass()
|
||||
== BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE
|
||||
|| bluetoothClass.getDeviceClass()
|
||||
== BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET)) {
|
||||
EventLog.writeEvent(0x534e4554, "138529441", -1, "");
|
||||
}
|
||||
mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
|
||||
|
||||
@@ -27,12 +27,14 @@ import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
import com.android.settingslib.testutils.shadow.ShadowBluetoothAdapter;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -41,8 +43,11 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadow.api.Shadow;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowBluetoothAdapter.class})
|
||||
public class CachedBluetoothDeviceTest {
|
||||
private static final String DEVICE_NAME = "TestName";
|
||||
private static final String DEVICE_ALIAS = "TestAlias";
|
||||
@@ -72,12 +77,14 @@ public class CachedBluetoothDeviceTest {
|
||||
private AudioManager mAudioManager;
|
||||
private Context mContext;
|
||||
private int mBatteryLevel = BluetoothDevice.BATTERY_LEVEL_UNKNOWN;
|
||||
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mAudioManager = mContext.getSystemService(AudioManager.class);
|
||||
mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
|
||||
when(mDevice.getAddress()).thenReturn(DEVICE_ADDRESS);
|
||||
when(mHfpProfile.isProfileReady()).thenReturn(true);
|
||||
when(mA2dpProfile.isProfileReady()).thenReturn(true);
|
||||
@@ -937,4 +944,17 @@ public class CachedBluetoothDeviceTest {
|
||||
assertThat(mCachedDevice.getConnectionSummary()).isEqualTo(
|
||||
mContext.getString(R.string.profile_connect_timeout_subtext));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onUuidChanged_bluetoothClassIsNull_shouldNotCrash() {
|
||||
mShadowBluetoothAdapter.setUuids(PbapServerProfile.PBAB_CLIENT_UUIDS);
|
||||
when(mDevice.getUuids()).thenReturn(PbapServerProfile.PBAB_CLIENT_UUIDS);
|
||||
when(mDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
|
||||
when(mDevice.getPhonebookAccessPermission()).thenReturn(BluetoothDevice.ACCESS_UNKNOWN);
|
||||
when(mDevice.getBluetoothClass()).thenReturn(null);
|
||||
|
||||
mCachedDevice.onUuidChanged();
|
||||
|
||||
// Should not crash
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
import android.os.ParcelUuid;
|
||||
|
||||
import org.robolectric.annotation.Implementation;
|
||||
import org.robolectric.annotation.Implements;
|
||||
@@ -36,6 +37,7 @@ public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBlueto
|
||||
private List<Integer> mSupportedProfiles;
|
||||
private List<BluetoothDevice> mMostRecentlyConnectedDevices;
|
||||
private BluetoothProfile.ServiceListener mServiceListener;
|
||||
private ParcelUuid[] mParcelUuids;
|
||||
|
||||
@Implementation
|
||||
protected boolean getProfileProxy(Context context, BluetoothProfile.ServiceListener listener,
|
||||
@@ -87,4 +89,13 @@ public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBlueto
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
protected ParcelUuid[] getUuids() {
|
||||
return mParcelUuids;
|
||||
}
|
||||
|
||||
public void setUuids(ParcelUuid[] uuids) {
|
||||
mParcelUuids = uuids;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user