diff options
| author | 2018-09-17 18:22:06 +0000 | |
|---|---|---|
| committer | 2018-09-17 22:15:20 +0000 | |
| commit | 09544613748ef1e94165a1032eda5ee1de3a12df (patch) | |
| tree | 283cbac625c4039a948a9fec5a4f7db9eabbdc89 | |
| parent | c386c87b0eff4625d27f7eac42d399b684add248 (diff) | |
Revert "remove getName() from CachedBluetoothDeviceManager"
This reverts commit c386c87b0eff4625d27f7eac42d399b684add248.
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: I727089cfd23819f292f96f0d0232f35bc6ebac64
2 files changed, 21 insertions, 1 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java index 672daae36efb..47bd853361ee 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java @@ -211,6 +211,26 @@ public class CachedBluetoothDeviceManager { } } + /** + * Attempts to get the name of a remote device, otherwise returns the address. + * + * @param device The remote device. + * @return The name, or if unavailable, the address. + */ + public String getName(BluetoothDevice device) { + CachedBluetoothDevice cachedDevice = findDevice(device); + if (cachedDevice != null && cachedDevice.getName() != null) { + return cachedDevice.getName(); + } + + String name = device.getAliasName(); + if (name != null) { + return name; + } + + return device.getAddress(); + } + public synchronized void clearNonBondedDevices() { mCachedDevicesMapForHearingAids.entrySet().removeIf(entries diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java index 8ac611fda1fc..7baded8da1d4 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java @@ -139,7 +139,7 @@ public class CachedBluetoothDeviceManagerTest { public void testGetName_validCachedDevice_nameFound() { CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); - assertThat(mCachedDeviceManager.findDevice(mDevice1).getName()).isEqualTo(DEVICE_ALIAS_1); + assertThat(mCachedDeviceManager.getName(mDevice1)).isEqualTo(DEVICE_ALIAS_1); } /** |