summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorSungki Kim <skkim7@gmail.com>2016-05-19 10:18:07 -0700
committerAndre Eisenbach <eisenbach@google.com>2016-05-19 18:25:25 +0000
commitd35167adcaa40cb54df8e392379dfdfe98bcdba2 (patch)
tree140bff52a19e40f469567735d5b9369ad61b3ebc /core/java
parent44b9f13f9cfaf2e1136a1f2baab54b229d221fe4 (diff)
Fix GATT autoConnect race condition
As pointed out here: https://code.google.com/p/android/issues/detail?id=69834 registerApp() causes onClientRegistered() to happen before autoConnect is set. This patch fixes that. Bug: 28861330 Change-Id: Ie1174c0f224f5084178439420b383164d22d542c
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/bluetooth/BluetoothGatt.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index b8a40dc6895a..800dd434a969 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -645,6 +645,9 @@ public final class BluetoothGatt implements BluetoothProfile {
}
mConnState = CONN_STATE_CONNECTING;
}
+
+ mAutoConnect = autoConnect;
+
if (!registerApp(callback)) {
synchronized(mStateLock) {
mConnState = CONN_STATE_IDLE;
@@ -653,8 +656,7 @@ public final class BluetoothGatt implements BluetoothProfile {
return false;
}
- // the connection will continue after successful callback registration
- mAutoConnect = autoConnect;
+ // The connection will continue in the onClientRegistered callback
return true;
}