Loading packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +10 −7 Original line number Diff line number Diff line Loading @@ -97,16 +97,19 @@ public class CachedBluetoothDeviceManager { * @return the newly created CachedBluetoothDevice object */ public CachedBluetoothDevice addDevice(BluetoothDevice device) { LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager(); CachedBluetoothDevice newDevice = new CachedBluetoothDevice(mContext, profileManager, device); mHearingAidDeviceManager.initHearingAidDeviceIfNeeded(newDevice); CachedBluetoothDevice newDevice; final LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager(); synchronized (this) { newDevice = findDevice(device); if (newDevice == null) { newDevice = new CachedBluetoothDevice(mContext, profileManager, device); mHearingAidDeviceManager.initHearingAidDeviceIfNeeded(newDevice); if (!mHearingAidDeviceManager.setSubDeviceIfNeeded(newDevice)) { mCachedDevices.add(newDevice); mBtManager.getEventManager().dispatchDeviceAdded(newDevice); } } } return newDevice; } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -190,6 +190,25 @@ public class CachedBluetoothDeviceManagerTest { assertThat(devices).contains(cachedDevice2); } /** * Test to verify addDevice(), the duplicated device should not added. */ @Test public void addDevice_addDuplicatedDevice_duplicateDeviceShouldNotAdded() { final CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); final CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); final CachedBluetoothDevice cachedDevice3 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice3).isNotNull(); final CachedBluetoothDevice cachedDevice4 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice4).isNotNull(); final Collection<CachedBluetoothDevice> devices = mCachedDeviceManager.getCachedDevicesCopy(); assertThat(devices.size()).isEqualTo(2); } /** * Test to verify findDevice(), new device has the same HiSyncId. */ Loading Loading
packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java +10 −7 Original line number Diff line number Diff line Loading @@ -97,16 +97,19 @@ public class CachedBluetoothDeviceManager { * @return the newly created CachedBluetoothDevice object */ public CachedBluetoothDevice addDevice(BluetoothDevice device) { LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager(); CachedBluetoothDevice newDevice = new CachedBluetoothDevice(mContext, profileManager, device); mHearingAidDeviceManager.initHearingAidDeviceIfNeeded(newDevice); CachedBluetoothDevice newDevice; final LocalBluetoothProfileManager profileManager = mBtManager.getProfileManager(); synchronized (this) { newDevice = findDevice(device); if (newDevice == null) { newDevice = new CachedBluetoothDevice(mContext, profileManager, device); mHearingAidDeviceManager.initHearingAidDeviceIfNeeded(newDevice); if (!mHearingAidDeviceManager.setSubDeviceIfNeeded(newDevice)) { mCachedDevices.add(newDevice); mBtManager.getEventManager().dispatchDeviceAdded(newDevice); } } } return newDevice; } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -190,6 +190,25 @@ public class CachedBluetoothDeviceManagerTest { assertThat(devices).contains(cachedDevice2); } /** * Test to verify addDevice(), the duplicated device should not added. */ @Test public void addDevice_addDuplicatedDevice_duplicateDeviceShouldNotAdded() { final CachedBluetoothDevice cachedDevice1 = mCachedDeviceManager.addDevice(mDevice1); assertThat(cachedDevice1).isNotNull(); final CachedBluetoothDevice cachedDevice2 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice2).isNotNull(); final CachedBluetoothDevice cachedDevice3 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice3).isNotNull(); final CachedBluetoothDevice cachedDevice4 = mCachedDeviceManager.addDevice(mDevice2); assertThat(cachedDevice4).isNotNull(); final Collection<CachedBluetoothDevice> devices = mCachedDeviceManager.getCachedDevicesCopy(); assertThat(devices.size()).isEqualTo(2); } /** * Test to verify findDevice(), new device has the same HiSyncId. */ Loading