Bluetooth PAN: Set isPreferred to true (2/2)

isPreferred must always be true for PAN so that the DUT can initiate
a PANU connection with the remote device not only from the internet
access menu in the profile setting, but also from the paired device
list menu.

Currently isPreferred is only true when PAN is in connected state
for the PANU role, so it will return false when the PAN profile is
not connected and the PANU connection will never be initiated
from the paired device list menu.

Change-Id: I3d52d89136269508ac6416b695b22842f4bb557a
This commit is contained in:
Andre Eisenbach
2015-06-02 01:48:29 -07:00
parent afa6361d36
commit 901ce5de8d

View File

@@ -39,6 +39,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfile;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.bluetooth.MapProfile;
import com.android.settingslib.bluetooth.PanProfile;
import com.android.settingslib.bluetooth.PbapServerProfile;
import java.util.HashMap;
@@ -244,8 +245,12 @@ public final class DeviceProfilesSettings extends SettingsPreferenceFragment
}
if (profile.isPreferred(device)) {
// profile is preferred but not connected: disable auto-connect
if (profile instanceof PanProfile) {
mCachedDevice.connectProfile(profile);
} else {
profile.setPreferred(device, false);
refreshProfilePreference(profilePref, profile);
}
} else {
profile.setPreferred(device, true);
mCachedDevice.connectProfile(profile);
@@ -330,10 +335,15 @@ public final class DeviceProfilesSettings extends SettingsPreferenceFragment
if (profile instanceof MapProfile) {
profilePref.setChecked(mCachedDevice.getMessagePermissionChoice()
== CachedBluetoothDevice.ACCESS_ALLOWED);
} else if (profile instanceof PbapServerProfile) {
// Handle PBAP specially.
profilePref.setChecked(mCachedDevice.getPhonebookPermissionChoice()
== CachedBluetoothDevice.ACCESS_ALLOWED);
} else if (profile instanceof PanProfile) {
profilePref.setChecked(profile.getConnectionStatus(device) ==
BluetoothProfile.STATE_CONNECTED);
} else {
profilePref.setChecked(profile.isPreferred(device));
}