From d39fbe0f23609a95b1c7c372ae4026a2ff14832b Mon Sep 17 00:00:00 2001 From: hughchen Date: Thu, 18 Apr 2019 17:48:15 +0800 Subject: [PATCH] Remove all device from preference when BT is disabled The issue is happened when BT is disabled then navigate to "Connected devices". BluetoothDeviceUpdater didn't update UI when BT is disabled. Remove all device from preference when BT is disabled. Bug: 80090956 Test: make -j42 RunSettingsRoboTests Change-Id: Ia1fd8cfbcf95d712a1a702fdf101ff98186b76cd --- .../android/settings/bluetooth/BluetoothDeviceUpdater.java | 2 ++ .../settings/bluetooth/BluetoothDeviceUpdaterTest.java | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java index 2128b2f4bb1..61cdaf6f81d 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java @@ -115,6 +115,8 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback, for (CachedBluetoothDevice cachedBluetoothDevice : cachedDevices) { update(cachedBluetoothDevice); } + } else { + removeAllDevicesFromPreference(); } } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java index 24aae859a31..10665529a86 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java @@ -215,11 +215,14 @@ public class BluetoothDeviceUpdaterTest { } @Test - public void forceUpdate_bluetoothDisabled_doNothing() { + public void forceUpdate_bluetoothDisabled_removeAllDevicesFromPreference() { mShadowBluetoothAdapter.setEnabled(false); + mBluetoothDeviceUpdater.mPreferenceMap.put(mBluetoothDevice, mPreference); + mBluetoothDeviceUpdater.forceUpdate(); - verify(mDevicePreferenceCallback, never()).onDeviceAdded(any(Preference.class)); + verify(mDevicePreferenceCallback).onDeviceRemoved(mPreference); + assertThat(mBluetoothDeviceUpdater.mPreferenceMap).isEmpty(); } @Test