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)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({SortType.TYPE_DEFAULT,
|
@IntDef({SortType.TYPE_DEFAULT,
|
||||||
SortType.TYPE_FIFO})
|
SortType.TYPE_FIFO,
|
||||||
|
SortType.TYPE_NO_SORT})
|
||||||
public @interface SortType {
|
public @interface SortType {
|
||||||
int TYPE_DEFAULT = 1;
|
int TYPE_DEFAULT = 1;
|
||||||
int TYPE_FIFO = 2;
|
int TYPE_FIFO = 2;
|
||||||
|
int TYPE_NO_SORT = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
private final CachedBluetoothDevice mCachedDevice;
|
private final CachedBluetoothDevice mCachedDevice;
|
||||||
|
@@ -232,12 +232,21 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
* Add the {@link Preference} that represents the {@code cachedDevice}
|
* Add the {@link Preference} that represents the {@code cachedDevice}
|
||||||
*/
|
*/
|
||||||
protected void addPreference(CachedBluetoothDevice 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();
|
final BluetoothDevice device = cachedDevice.getDevice();
|
||||||
if (!mPreferenceMap.containsKey(device)) {
|
if (!mPreferenceMap.containsKey(device)) {
|
||||||
BluetoothDevicePreference btPreference =
|
BluetoothDevicePreference btPreference =
|
||||||
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
||||||
true /* showDeviceWithoutNames */,
|
true /* showDeviceWithoutNames */,
|
||||||
BluetoothDevicePreference.SortType.TYPE_DEFAULT);
|
type);
|
||||||
btPreference.setKey(getPreferenceKey());
|
btPreference.setKey(getPreferenceKey());
|
||||||
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
||||||
if (this instanceof Preference.OnPreferenceClickListener) {
|
if (this instanceof Preference.OnPreferenceClickListener) {
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.bluetooth;
|
package com.android.settings.bluetooth;
|
||||||
|
|
||||||
|
import android.bluetooth.BluetoothAdapter;
|
||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -24,6 +25,7 @@ import androidx.preference.Preference;
|
|||||||
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
import com.android.settings.connecteddevice.DevicePreferenceCallback;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||||
|
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maintain and update saved bluetooth devices(bonded but not connected)
|
* Maintain and update saved bluetooth devices(bonded but not connected)
|
||||||
@@ -41,6 +43,26 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
|||||||
super(context, fragment, devicePreferenceCallback);
|
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
|
@Override
|
||||||
public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
|
public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
|
||||||
final BluetoothDevice device = cachedDevice.getDevice();
|
final BluetoothDevice device = cachedDevice.getDevice();
|
||||||
|
Reference in New Issue
Block a user