Merge "Listed order on "previously connected" depend on recently connected devices"
This commit is contained in:
committed by
Android (Google) Code Review
commit
02be0c65f1
@@ -60,10 +60,12 @@ public final class BluetoothDevicePreference extends GearPreference implements
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef({SortType.TYPE_DEFAULT,
|
||||
SortType.TYPE_FIFO})
|
||||
SortType.TYPE_FIFO,
|
||||
SortType.TYPE_NO_SORT})
|
||||
public @interface SortType {
|
||||
int TYPE_DEFAULT = 1;
|
||||
int TYPE_FIFO = 2;
|
||||
int TYPE_NO_SORT = 3;
|
||||
}
|
||||
|
||||
private final CachedBluetoothDevice mCachedDevice;
|
||||
|
@@ -232,12 +232,21 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
||||
* Add the {@link Preference} that represents the {@code cachedDevice}
|
||||
*/
|
||||
protected void addPreference(CachedBluetoothDevice cachedDevice) {
|
||||
addPreference(cachedDevice, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the {@link Preference} with {@link BluetoothDevicePreference.SortType} that
|
||||
* represents the {@code cachedDevice}
|
||||
*/
|
||||
protected void addPreference(CachedBluetoothDevice cachedDevice,
|
||||
@BluetoothDevicePreference.SortType int type) {
|
||||
final BluetoothDevice device = cachedDevice.getDevice();
|
||||
if (!mPreferenceMap.containsKey(device)) {
|
||||
BluetoothDevicePreference btPreference =
|
||||
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
||||
true /* showDeviceWithoutNames */,
|
||||
BluetoothDevicePreference.SortType.TYPE_DEFAULT);
|
||||
type);
|
||||
btPreference.setKey(getPreferenceKey());
|
||||
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
||||
if (this instanceof Preference.OnPreferenceClickListener) {
|
||||
|
@@ -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