Listed order on "previously connected" depend on recently connected devices
This CL use Bluetooth api "getMostRecentlyConnectedDevices()" to get recently connected devices list. Let "previously connected" will list most recently connected device on the top. Bug: 130984590 Test: make -j42 RunSettingsRoboTests Change-Id: I8d425b6da6cb9fe9fd1417937b4cb9a052cd1660
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.android.settings.bluetooth;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
@@ -24,6 +25,7 @@ import androidx.preference.Preference;
|
||||
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||
|
||||
/**
|
||||
* Maintain and update saved bluetooth devices(bonded but not connected)
|
||||
@@ -41,6 +43,26 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
||||
super(context, fragment, devicePreferenceCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceUpdate() {
|
||||
if (BluetoothAdapter.getDefaultAdapter().isEnabled()) {
|
||||
final CachedBluetoothDeviceManager cachedManager =
|
||||
mLocalManager.getCachedDeviceManager();
|
||||
for (BluetoothDevice device
|
||||
: BluetoothAdapter.getDefaultAdapter().getMostRecentlyConnectedDevices()) {
|
||||
final CachedBluetoothDevice cachedDevice = cachedManager.findDevice(device);
|
||||
if (isFilterMatched(cachedDevice)) {
|
||||
// Add the preference if it is new one
|
||||
addPreference(cachedDevice, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
} else {
|
||||
removePreference(cachedDevice);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
removeAllDevicesFromPreference();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
|
||||
final BluetoothDevice device = cachedDevice.getDevice();
|
||||
|
Reference in New Issue
Block a user