Click left side of list in "previously connected devices" should connect to the device
* For fix the TreeHugger error in pi-dev, cherry pick the ag/3943978 in master and fix TreeHugger error. Change android.support.v7.* to androidx.* * In "previously connected devices", to connect device * In "Available media devices", to activate device Bug: 77607104 Test: make -j50 RunSettingsRoboTests Change-Id: If5005031bd3f5dc4950abf2c77575785cd6f67b1
This commit is contained in:
@@ -18,8 +18,9 @@ package com.android.settings.bluetooth;
|
|||||||
import android.bluetooth.BluetoothProfile;
|
import android.bluetooth.BluetoothProfile;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
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;
|
||||||
@@ -29,7 +30,8 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
|||||||
/**
|
/**
|
||||||
* Controller to maintain available media Bluetooth devices
|
* 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 String TAG = "AvailableMediaBluetoothDeviceUpdater";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = false;
|
||||||
@@ -116,5 +118,12 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
|
|||||||
}
|
}
|
||||||
return isFilterMatched;
|
return isFilterMatched;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
|
||||||
|
.getBluetoothDevice();
|
||||||
|
return device.setActive();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -59,24 +59,12 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
protected DashboardFragment mFragment;
|
protected DashboardFragment mFragment;
|
||||||
|
|
||||||
private final boolean mShowDeviceWithoutNames;
|
private final boolean mShowDeviceWithoutNames;
|
||||||
private Preference.OnPreferenceClickListener mDevicePreferenceClickListener = null;
|
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final GearPreference.OnGearClickListener mDeviceProfilesListener = pref -> {
|
final GearPreference.OnGearClickListener mDeviceProfilesListener = pref -> {
|
||||||
launchDeviceDetails(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,
|
public BluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
||||||
DevicePreferenceCallback devicePreferenceCallback) {
|
DevicePreferenceCallback devicePreferenceCallback) {
|
||||||
this(fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
|
this(fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
|
||||||
@@ -91,7 +79,6 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false);
|
BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false);
|
||||||
mPreferenceMap = new HashMap<>();
|
mPreferenceMap = new HashMap<>();
|
||||||
mLocalManager = localManager;
|
mLocalManager = localManager;
|
||||||
mDevicePreferenceClickListener = new PreferenceClickListener();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -212,7 +199,10 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
|
|||||||
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
new BluetoothDevicePreference(mPrefContext, cachedDevice,
|
||||||
mShowDeviceWithoutNames);
|
mShowDeviceWithoutNames);
|
||||||
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
btPreference.setOnGearClickListener(mDeviceProfilesListener);
|
||||||
btPreference.setOnPreferenceClickListener(mDevicePreferenceClickListener);
|
if (this instanceof Preference.OnPreferenceClickListener) {
|
||||||
|
btPreference.setOnPreferenceClickListener(
|
||||||
|
(Preference.OnPreferenceClickListener)this);
|
||||||
|
}
|
||||||
mPreferenceMap.put(device, btPreference);
|
mPreferenceMap.put(device, btPreference);
|
||||||
mDevicePreferenceCallback.onDeviceAdded(btPreference);
|
mDevicePreferenceCallback.onDeviceAdded(btPreference);
|
||||||
}
|
}
|
||||||
|
@@ -19,16 +19,20 @@ import android.bluetooth.BluetoothDevice;
|
|||||||
import android.bluetooth.BluetoothProfile;
|
import android.bluetooth.BluetoothProfile;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
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.LocalBluetoothManager;
|
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maintain and update saved bluetooth devices(bonded but not connected)
|
* 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,
|
public SavedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
|
||||||
DevicePreferenceCallback devicePreferenceCallback) {
|
DevicePreferenceCallback devicePreferenceCallback) {
|
||||||
@@ -57,4 +61,12 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
|
|||||||
final BluetoothDevice device = cachedDevice.getDevice();
|
final BluetoothDevice device = cachedDevice.getDevice();
|
||||||
return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -73,6 +73,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
|
|||||||
private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
||||||
private Collection<CachedBluetoothDevice> cachedDevices;
|
private Collection<CachedBluetoothDevice> cachedDevices;
|
||||||
private ShadowAudioManager mShadowAudioManager;
|
private ShadowAudioManager mShadowAudioManager;
|
||||||
|
private BluetoothDevicePreference mPreference;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -93,6 +94,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
|
|||||||
mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mDashboardFragment,
|
mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mDashboardFragment,
|
||||||
mDevicePreferenceCallback, mLocalManager));
|
mDevicePreferenceCallback, mLocalManager));
|
||||||
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
||||||
|
mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
|
||||||
doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
|
doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
|
||||||
doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
|
doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
|
||||||
}
|
}
|
||||||
@@ -208,5 +210,12 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
|
|||||||
|
|
||||||
verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
|
verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onClick_Preference_setActive() {
|
||||||
|
mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
|
||||||
|
|
||||||
|
verify(mCachedBluetoothDevice).setActive();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -57,7 +57,8 @@ public class SavedBluetoothDeviceUpdaterTest {
|
|||||||
private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
|
private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
private SavedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
||||||
|
private BluetoothDevicePreference mPreference;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -71,6 +72,7 @@ public class SavedBluetoothDeviceUpdaterTest {
|
|||||||
mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mDashboardFragment,
|
mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mDashboardFragment,
|
||||||
mDevicePreferenceCallback, mLocalManager));
|
mDevicePreferenceCallback, mLocalManager));
|
||||||
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
mBluetoothDeviceUpdater.setPrefContext(mContext);
|
||||||
|
mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
|
||||||
doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
|
doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
|
||||||
doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
|
doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
|
||||||
}
|
}
|
||||||
@@ -110,4 +112,11 @@ public class SavedBluetoothDeviceUpdaterTest {
|
|||||||
|
|
||||||
verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
|
verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onClick_Preference_setConnect() {
|
||||||
|
mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
|
||||||
|
|
||||||
|
verify(mCachedBluetoothDevice).connect(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user