Merge "Listed order on "previously connected" depend on recently connected devices"

This commit is contained in:
TreeHugger Robot
2020-02-05 06:20:56 +00:00
committed by Android (Google) Code Review
3 changed files with 35 additions and 2 deletions

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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();