summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/server/BluetoothEventLoop.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java
index 35a582d0a8c3..05be52aa5a2d 100644
--- a/core/java/android/server/BluetoothEventLoop.java
+++ b/core/java/android/server/BluetoothEventLoop.java
@@ -414,7 +414,13 @@ class BluetoothEventLoop {
mBluetoothService.sendUuidIntent(address);
} else if (name.equals("Paired")) {
if (propValues[1].equals("true")) {
- mBluetoothService.getBondState().setBondState(address, BluetoothDevice.BOND_BONDED);
+ // If locally initiated pairing, we will
+ // not go to BOND_BONDED state until we have received a
+ // successful return value in onCreatePairedDeviceResult
+ if (null == mBluetoothService.getBondState().getPendingOutgoingBonding()) {
+ mBluetoothService.getBondState().setBondState(address,
+ BluetoothDevice.BOND_BONDED);
+ }
} else {
mBluetoothService.getBondState().setBondState(address,
BluetoothDevice.BOND_NONE);