Revert "call getName() from CachedBluetoothDevice, not CachedBluetoothDeviceManager"

This reverts commit 3029efc5f7.

Reason for revert:
To fix null pointer crash in Pairing dialog. Dialog maybe triggered by intent, in which LocalBluetoothManager couldn't have instance for BluetoothDevice and will return null. As a result, we need to depend on method in CachedBluetoothManager to handle it.

Bug: 115754654
Bug: 112735753
Change-Id: I1ebf1f1c2829cfb75e6c382df5acf785fe54a185
This commit is contained in:
Lei Yu
2018-09-17 18:22:57 +00:00
parent 3029efc5f7
commit 499013b05e
2 changed files with 1 additions and 15 deletions

View File

@@ -85,7 +85,7 @@ public class BluetoothPairingController implements OnCheckedChangeListener,
mType = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR); mType = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_VARIANT, BluetoothDevice.ERROR);
mPasskey = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR); mPasskey = intent.getIntExtra(BluetoothDevice.EXTRA_PAIRING_KEY, BluetoothDevice.ERROR);
mDeviceName = mBluetoothManager.getCachedDeviceManager().findDevice(mDevice).getName(); mDeviceName = mBluetoothManager.getCachedDeviceManager().getName(mDevice);
mPbapClientProfile = mBluetoothManager.getProfileManager().getPbapClientProfile(); mPbapClientProfile = mBluetoothManager.getProfileManager().getPbapClientProfile();
mPasskeyFormatted = formatKey(mPasskey); mPasskeyFormatted = formatKey(mPasskey);
} }

View File

@@ -15,13 +15,10 @@
*/ */
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import static com.google.common.truth.Truth.assertThat;
import static android.bluetooth.BluetoothDevice.PAIRING_VARIANT_CONSENT; import static android.bluetooth.BluetoothDevice.PAIRING_VARIANT_CONSENT;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.content.Context; import android.content.Context;
@@ -30,7 +27,6 @@ import android.content.Intent;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothPan; import com.android.settings.testutils.shadow.ShadowBluetoothPan;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -43,12 +39,10 @@ import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowBluetoothPan.class, ShadowBluetoothAdapter.class}) @Config(shadows = {ShadowBluetoothPan.class, ShadowBluetoothAdapter.class})
public class BluetoothPairingControllerTest { public class BluetoothPairingControllerTest {
private final static String DEVICE_NAME = "TestName";
@Mock @Mock
private BluetoothDevice mBluetoothDevice; private BluetoothDevice mBluetoothDevice;
private Context mContext; private Context mContext;
private BluetoothPairingController mBluetoothPairingController; private BluetoothPairingController mBluetoothPairingController;
private LocalBluetoothManager mBluetoothManager;
@Before @Before
public void setUp() { public void setUp() {
@@ -57,9 +51,6 @@ public class BluetoothPairingControllerTest {
mContext = RuntimeEnvironment.application; mContext = RuntimeEnvironment.application;
final Intent intent = new Intent(); final Intent intent = new Intent();
intent.putExtra(BluetoothDevice.EXTRA_DEVICE, mBluetoothDevice); intent.putExtra(BluetoothDevice.EXTRA_DEVICE, mBluetoothDevice);
mBluetoothManager = Utils.getLocalBtManager(mContext);
when(mBluetoothDevice.getAliasName()).thenReturn(DEVICE_NAME);
mBluetoothManager.getCachedDeviceManager().addDevice(mBluetoothDevice);
mBluetoothPairingController = spy(new BluetoothPairingController(intent, mContext)); mBluetoothPairingController = spy(new BluetoothPairingController(intent, mContext));
} }
@@ -72,9 +63,4 @@ public class BluetoothPairingControllerTest {
verify(mBluetoothDevice).setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED); verify(mBluetoothDevice).setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
} }
@Test
public void onGetDeviceName() {
assertThat(mBluetoothPairingController.getDeviceName()).isEqualTo(DEVICE_NAME);
}
} }