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

Commit bafae44c authored by timhypeng's avatar timhypeng Committed by tim peng
Browse files

Click left side of list in "previously connected devices" should connect to the device

* In "previously connected devices", to connect device
* In "Available media devices", to activate device

Bug: 77607104
Test: make -j50 RunSettingsRoboTests
Change-Id: If5005031bd3f5dc4950abf2c77575785cd6f67b1
Merged-In: If5005031bd3f5dc4950abf2c77575785cd6f67b1
parent cbf68188
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -25,11 +25,13 @@ import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import android.support.v7.preference.Preference;

/**
 * Controller to maintain available media Bluetooth devices
 */
public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
        implements Preference.OnPreferenceClickListener {

    private static final String TAG = "AvailableMediaBluetoothDeviceUpdater";
    private static final boolean DBG = false;
@@ -116,5 +118,12 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
        }
        return isFilterMatched;
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
                .getBluetoothDevice();
        return device.setActive();
    }
}
+5 −15
Original line number Diff line number Diff line
@@ -59,24 +59,12 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
    protected DashboardFragment mFragment;

    private final boolean mShowDeviceWithoutNames;
    private Preference.OnPreferenceClickListener mDevicePreferenceClickListener = null;
    
    @VisibleForTesting
    final GearPreference.OnGearClickListener mDeviceProfilesListener = pref -> {
        launchDeviceDetails(pref);
    };

    private class PreferenceClickListener implements
        Preference.OnPreferenceClickListener {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            final CachedBluetoothDevice device =
                ((BluetoothDevicePreference) preference).getBluetoothDevice();
            Log.i(TAG, "OnPreferenceClickListener: device=" + device);
            return device.setActive();
        }
    }

    public BluetoothDeviceUpdater(Context context, DashboardFragment fragment,
            DevicePreferenceCallback devicePreferenceCallback) {
        this(fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
@@ -91,7 +79,6 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false);
        mPreferenceMap = new HashMap<>();
        mLocalManager = localManager;
        mDevicePreferenceClickListener = new PreferenceClickListener();
    }

    /**
@@ -212,7 +199,10 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
                    new BluetoothDevicePreference(mPrefContext, cachedDevice,
                            mShowDeviceWithoutNames);
            btPreference.setOnGearClickListener(mDeviceProfilesListener);
            btPreference.setOnPreferenceClickListener(mDevicePreferenceClickListener);
            if (this instanceof Preference.OnPreferenceClickListener) {
                btPreference.setOnPreferenceClickListener(
                        (Preference.OnPreferenceClickListener)this);
            }
            mPreferenceMap.put(device, btPreference);
            mDevicePreferenceCallback.onDeviceAdded(btPreference);
        }
+13 −1
Original line number Diff line number Diff line
@@ -24,11 +24,15 @@ import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import android.support.v7.preference.Preference;
import android.util.Log;

/**
 * Maintain and update saved bluetooth devices(bonded but not connected)
 */
public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
        implements Preference.OnPreferenceClickListener {
    private static final String TAG = "SavedBluetoothDeviceUpdater";

    public SavedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
            DevicePreferenceCallback devicePreferenceCallback) {
@@ -57,4 +61,12 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
        final BluetoothDevice device = cachedDevice.getDevice();
        return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
                .getBluetoothDevice();
        device.connect(true);
        return true;
    }
}
+9 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
    private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
    private Collection<CachedBluetoothDevice> cachedDevices;
    private ShadowAudioManager mShadowAudioManager;
    private BluetoothDevicePreference mPreference;

    @Before
    public void setUp() {
@@ -93,6 +94,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
        mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mDashboardFragment,
                mDevicePreferenceCallback, mLocalManager));
        mBluetoothDeviceUpdater.setPrefContext(mContext);
        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
        doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
        doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
    }
@@ -208,5 +210,12 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {

        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
    }

    @Test
    public void onClick_Preference_setActive() {
        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);

        verify(mCachedBluetoothDevice).setActive();
    }
}
+10 −1
Original line number Diff line number Diff line
@@ -57,7 +57,8 @@ public class SavedBluetoothDeviceUpdaterTest {
    private LocalBluetoothProfileManager mLocalBluetoothProfileManager;

    private Context mContext;
    private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
    private SavedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
    private BluetoothDevicePreference mPreference;

    @Before
    public void setUp() {
@@ -71,6 +72,7 @@ public class SavedBluetoothDeviceUpdaterTest {
        mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mDashboardFragment,
                mDevicePreferenceCallback, mLocalManager));
        mBluetoothDeviceUpdater.setPrefContext(mContext);
        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
        doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
        doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
    }
@@ -110,4 +112,11 @@ public class SavedBluetoothDeviceUpdaterTest {

        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
    }

    @Test
    public void onClick_Preference_setConnect() {
        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);

        verify(mCachedBluetoothDevice).connect(true);
    }
}