Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02be0c65 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 638b45e4 043e43f0
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
+10 −1
Original line number Diff line number Diff line
@@ -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) {
+22 −0
Original line number Diff line number Diff line
@@ -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();