diff options
| author | Sungki Kim <skkim7@gmail.com> | 2016-05-19 10:18:07 -0700 |
|---|---|---|
| committer | Andre Eisenbach <eisenbach@google.com> | 2016-05-19 18:25:25 +0000 |
| commit | d35167adcaa40cb54df8e392379dfdfe98bcdba2 (patch) | |
| tree | 140bff52a19e40f469567735d5b9369ad61b3ebc /core/java | |
| parent | 44b9f13f9cfaf2e1136a1f2baab54b229d221fe4 (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.java | 6 |
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; } |
