Bluetooth: Give PBAP permission only if device is AUDIO_VIDEO_HANDSFREE

Step by step:
1. Pair and connect with BTHS (e.g. SBH50).
2. Click the settings icon of paired device, and check "Use for" items.
-----------------------------------------------------------------
Expected Result:
After step 2, "Contact sharing" should not be checked.

Actual Result:
After step 2, "Contact sharing" is checked.

Fix:
Set phone book permission as REJECTED if class of Device is
not AUDIO_VIDEO_HANDSFREE

Test: Checked above usecase and issue is not observed

Bug: 64372703
Change-Id: I178a09dd9e76d67c461c4b04d9b2ee0078ed24c9
This commit is contained in:
Hemant Gupta
2017-09-22 12:24:14 +05:30
committed by Myles Watson
parent 8aeb69396d
commit 5b84cfae44
2 changed files with 18 additions and 0 deletions

View File

@@ -171,6 +171,22 @@ public class BluetoothPairingController implements OnCheckedChangeListener,
} }
} }
/**
* Update Phone book permission
*
*/
public void setContactSharingState() {
if ((mDevice.getPhonebookAccessPermission() != BluetoothDevice.ACCESS_ALLOWED)
&& (mDevice.getPhonebookAccessPermission() != BluetoothDevice.ACCESS_REJECTED)) {
if (mDevice.getBluetoothClass().getDeviceClass()
== BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE) {
onCheckedChanged(null, true);
} else {
onCheckedChanged(null, false);
}
}
}
/** /**
* A method for querying if the provided editable is a valid passkey/pin format for this device. * A method for querying if the provided editable is a valid passkey/pin format for this device.
* *

View File

@@ -224,6 +224,7 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i
contactSharing.setVisibility(mPairingController.isProfileReady() contactSharing.setVisibility(mPairingController.isProfileReady()
? View.GONE : View.VISIBLE); ? View.GONE : View.VISIBLE);
mPairingController.setContactSharingState();
contactSharing.setOnCheckedChangeListener(mPairingController); contactSharing.setOnCheckedChangeListener(mPairingController);
contactSharing.setChecked(mPairingController.getContactSharingState()); contactSharing.setChecked(mPairingController.getContactSharingState());
@@ -314,6 +315,7 @@ public class BluetoothPairingDialogFragment extends InstrumentedDialogFragment i
contactSharing.setVisibility( contactSharing.setVisibility(
mPairingController.isProfileReady() ? View.GONE : View.VISIBLE); mPairingController.isProfileReady() ? View.GONE : View.VISIBLE);
mPairingController.setContactSharingState();
contactSharing.setChecked(mPairingController.getContactSharingState()); contactSharing.setChecked(mPairingController.getContactSharingState());
contactSharing.setOnCheckedChangeListener(mPairingController); contactSharing.setOnCheckedChangeListener(mPairingController);