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

Commit 901ce5de authored by Andre Eisenbach's avatar Andre Eisenbach
Browse files

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
parent afa6361d
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -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));
        }