Fix for correctly enabling PAN profile in Settings

Update the connected profile list in CachedBluetoothDevice correctly
if a PANU-NAP connection is already existing but the onUuidChanged()
callback doesnt contain the PANU UUID in SDP inquiry. Now, the
DeviceProfileSettings screens displays valid 'Internet connection
sharing' option when connected as a NAP to remote PANU.

Change-Id: I35821233e7776fb13f7fb1eb22af992b497202a9
This commit is contained in:
Syed Ibrahim M
2012-07-12 00:30:37 +05:30
committed by Matthew Xie
parent 6a20ce5e51
commit 6bce91bb9b
2 changed files with 7 additions and 4 deletions

View File

@@ -463,7 +463,7 @@ final class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> {
ParcelUuid[] localUuids = mLocalAdapter.getUuids();
if (localUuids == null) return false;
mProfileManager.updateProfiles(uuids, localUuids, mProfiles, mRemovedProfiles);
mProfileManager.updateProfiles(uuids, localUuids, mProfiles, mRemovedProfiles, mLocalNapRoleConnected);
if (DEBUG) {
Log.e(TAG, "updating profiles for " + mDevice.getAliasName());

View File

@@ -425,7 +425,8 @@ final class LocalBluetoothProfileManager {
*/
synchronized void updateProfiles(ParcelUuid[] uuids, ParcelUuid[] localUuids,
Collection<LocalBluetoothProfile> profiles,
Collection<LocalBluetoothProfile> removedProfiles) {
Collection<LocalBluetoothProfile> removedProfiles,
boolean isPanNapConnected) {
// Copy previous profile list into removedProfiles
removedProfiles.clear();
removedProfiles.addAll(profiles);
@@ -463,8 +464,10 @@ final class LocalBluetoothProfileManager {
removedProfiles.remove(mHidProfile);
}
if (BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.NAP) &&
mPanProfile != null) {
if(isPanNapConnected)
Log.d(TAG, "Valid PAN-NAP connection exists.");
if ((BluetoothUuid.isUuidPresent(uuids, BluetoothUuid.NAP) &&
mPanProfile != null) || isPanNapConnected) {
profiles.add(mPanProfile);
removedProfiles.remove(mPanProfile);
}