Commit Graph

689 Commits

Author SHA1 Message Date
Calvin On
1fef349549 Merge \"Guard concurrent accesses to BluetoothA2dp service object\" into nyc-mr1-dev
am: 30ec4f2732

Change-Id: Ie9bcb2474c002b8118666c413d864b05eaf0245c
2016-06-22 02:38:11 +00:00
Calvin On
d7d16b9f37 Guard concurrent accesses to BluetoothA2dp service object
This fixes potential NPEs that happen on methods that access
mService after checking nullness, i.e. getConnectedDevices.

Bug: 29514788
Change-Id: Ic97054fd5a3563a374c0e863fb116c52535a6509
2016-06-22 01:08:03 +00:00
Marie Janssen
fb0ee69ad0 Merge \\\"Fix links to Bluetooth Guide\\\" am: 6ba39e5642 am: 51f620d98d
am: 30975ad80b

Change-Id: I99e17125cf95165b911c6e8f294e2f020d483cb2
2016-06-21 23:40:28 +00:00
Marie Janssen
30975ad80b Merge \\"Fix links to Bluetooth Guide\\" am: 6ba39e5642
am: 51f620d98d

Change-Id: I3818fdbfc3ad60a731bdf3b7f047a2afca04ad2e
2016-06-21 21:38:25 +00:00
Marie Janssen
51f620d98d Merge \"Fix links to Bluetooth Guide\"
am: 6ba39e5642

Change-Id: I0f4e84245e05a19403603121a9138c2076ef2282
2016-06-21 21:34:13 +00:00
Marie Janssen
382871b03f Fix links to Bluetooth Guide
Change-Id: I5798c3d71c7cc9c509e0f7b04fa140168b0fdc11
2016-06-20 10:26:31 -07:00
Christine Hallstrom
ac1873b2fc Merge "Fix early termination of while loop in BluetoothSocket#write" into nyc-mr1-dev 2016-06-20 17:23:02 +00:00
Calvin On
8dad883759 Merge \"Fix race with BT disable in BLE_ON_STATE\" into nyc-dev
am: 1bf8782605

Change-Id: I60d35a8139caf0a1c839654d6c488fede4fa37d7
2016-06-18 02:22:50 +00:00
Christine Hallstrom
fc59c344bf Fix early termination of while loop in BluetoothSocket#write
While loop exits too early and misses writing remaining bytes.
Also restructured the loop itself to be more readable.

Change-Id: I71e9b331d20b5ae70175450c3346be43ab56c40c
2016-06-18 00:09:45 +00:00
Calvin On
a0b91d77d6 Fix race with BT disable in BLE_ON_STATE
This will restart the BT stack when it detects a transition
into OFF state while the user enable flag (mEnable) is set.

Bug: 29363429
Change-Id: I9839119b34c4694ad92e96240c6989008b2f8d52
2016-06-17 21:18:21 +00:00
ugo_yu
f308ab01dc Correct typo in BluetoothSap binder
This patch fixed IBluetoothSap typo as IBluetoothMap in doBind.

Fixes: 29025598
Change-Id: Ieab3d1583839db0a33b1cfa4d2de1f27c9cb3fe4
2016-06-16 21:02:39 +00:00
Mudumba Ananth
0d98ebf997 HFP 1.7 profile update (3/4)
-> Android Framework changes to add support for
   an API to send indicator change in AG.
-> Added a system intent for broadcasting assigned number(ID)
   of the supported HF indicators and their values (if received)

Bug: 19983867
Change-Id: If26a7ae5da5686da72ebca9ec3decfe086e2ffb6
2016-06-02 10:21:55 +00:00
Christine Hallstrom
995c90aa18 Properly check if BT is off when shutting down radios
Use BluetoothAdapter#getState() instead of
BluetoothAdapter#isEnabled() when checking if Bluetooth has turned
off, as isEnabled() is set to false early in the shutdown process
and getState() provides a better indication of the state of BT.

Bug: 27354612
Change-Id: Ic7828f0726491d49c9a14ba5d654b24f66743662
2016-05-26 13:20:56 -07:00
Pavlin Radoslavov
9a69daa706 Add missing "try ... finally" safeguards
Safeguards for code protected by ReentrantReadWriteLock.

Bug: 28734075
Bug: 28799467
Change-Id: Ib7f598a92e8df6bd855ca48cdd094c1c73a935f2
(cherry picked from commit e957a8a0b4)
2016-05-24 17:14:51 -07:00
Pavlin Radoslavov
e957a8a0b4 Add missing "try ... finally" safeguards
Safeguards for code protected by ReentrantReadWriteLock.

Bug: 28734075
Bug: 28799467
Change-Id: Ib7f598a92e8df6bd855ca48cdd094c1c73a935f2
2016-05-24 22:57:14 +00:00
Pavlin Radoslavov
2b016a1711 Reduced the impact of "synchronized" statements
* Removed "synchronized" statements that are not needed
* Replaced "synchronized" statements with Read/Write lock as
 appropriate. The lock protects the access to and the setting of
 BluetoothAdapter.mService and BluetoothManagerService.mBluetooth and
 associated state.

Bug: 28734075
Bug: 28799467
Change-Id: I8f8281c505f0a1ae0add1e14a3caba1f5b2a98e4
(cherry picked from commit eb50a39e98)
2016-05-24 21:17:42 +00:00
Pavlin Radoslavov
eb50a39e98 Reduced the impact of "synchronized" statements
* Removed "synchronized" statements that are not needed
* Replaced "synchronized" statements with Read/Write lock as
 appropriate. The lock protects the access to and the setting of
 BluetoothAdapter.mService and BluetoothManagerService.mBluetooth and
 associated state.

Bug: 28734075
Bug: 28799467
Change-Id: I8f8281c505f0a1ae0add1e14a3caba1f5b2a98e4
2016-05-24 01:17:29 +00:00
Sungki Kim
d35167adca 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
2016-05-19 18:25:25 +00:00
Sungki Kim
636ab03dfe 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
2016-05-19 18:23:44 +00:00
Wei Wang
02bc008607 Properly handle registration timeout in BLE.
Bug:25384098
Change-Id: I7877f6368c4982fcd91e68810c4da0ab7b5fc6b7
2016-05-13 18:32:15 +00:00
Adam Lesinski
3723194dc8 Merge "BluetoothManager: Make requestControllerActivityInfo one call" into nyc-dev 2016-05-12 00:59:29 +00:00
Jakub Pawlowski
2168fc29a2 Fix GATT Characteristic write type serialization
Default writeType for GATT characteristic was not being
serialized into Parcel. This cause errors when trying to
write into Characteristic.

Bug: 27910548
Change-Id: Ib2f88cf991123eaea244f16fa36deb0d773c5a33
2016-05-11 06:53:10 +00:00
Adam Lesinski
991357fe25 BluetoothManager: Make requestControllerActivityInfo one call
Instead of making multiple calls into the Bluetooth service,
make one call that can timeout. This helps prevent cases
when the Bluetooth process hangs and the system_server is calling into
it and causes a WATCHDOG restart.

Bug:28658141
Change-Id: I37778b7b6e508be420a21bdf23593ae89b38f5b8
2016-05-10 14:00:03 -07:00
Pavlin Radoslavov
2f463d4c8b Fix divergent equals and hashCode behavior
Calling Objects.hash with a byte[] will call the identity hashCode on
the byte[] and this doesn't agree with the use of Objects.deepEquals
in equals.
Bug caught by error prone.

Also, replaced usage of Objects.deepEquals(mServiceDataUuid, ...) with
Objects.equals(mServiceDataUuid, ...), because mServiceDataUuid
is an Object of type ParcelUuid.

Bug: 28585195
Change-Id: Id92734874339985fedafe1a28286a6a4dcd88d3b
2016-05-06 12:45:43 -07:00
Pavlin Radoslavov
f74b830e68 Fix divergent equals and hashCode behavior
Calling Objects.hash with a byte[] will call the identity hashCode on
the byte[] and this doesn't agree with the use of Objects.deepEquals
in equals.
Bug caught by error prone.

Also, replaced usage of Objects.deepEquals(mServiceDataUuid, ...) with
Objects.equals(mServiceDataUuid, ...), because mServiceDataUuid
is an Object of type ParcelUuid.

Bug: 28585195
Change-Id: Id92734874339985fedafe1a28286a6a4dcd88d3b
2016-05-06 12:05:47 -07:00
Jakub Pawlowski
c0e8ff323e OobData documentation
Bug: 27385555
Change-Id: Ie290914e4d2b9378c6dff3ae14d96d6f8b13ab9d
2016-04-19 17:36:12 +00:00
Adam Lesinski
010bf374d8 BatteryStats: Introduce Async external stats requests
Instead of calling out to external processes with a blocking IPC,
pass along a Binder on which the external process can pass back
the response. The calling process can then wait for the reply with
a timeout.

This eliminates watchdog restarts of the system_server when an external
process like telephony or bluetooth hangs.

Bug:26842468
Change-Id: I1b242e4ed22a63f1a4a0be8c78de8ac4d7bf56c5
2016-04-15 15:27:52 -07:00
Ajay Panicker
b6e1dafe78 Allow factory reset when bluetooth is off (1/2)
Bug: 27348444
Change-Id: I6c2709371b86581709649d7faf09391230449b9b
2016-04-05 20:23:21 +00:00
Ajay Panicker
1dfa47ee3e Merge "Allow factory reset when bluetooth is off (1/2)" 2016-04-01 23:46:33 +00:00
Ajay Panicker
4bb4830b75 Get name and address without enabling Bluetooth
Bug: 27665077
Change-Id: I2a06c1a65f22b2f9095a859f5bdd39d4626da165
2016-04-01 22:53:52 +00:00
Jakub Pawlowski
db29556fe8 Fix GATT Characteristic write type serialization
Default writeType for GATT characteristic was not being
serialized into Parcel. This cause errors when trying to
write into Characteristic.

Bug: 27910548
Change-Id: Ib2f88cf991123eaea244f16fa36deb0d773c5a33
2016-04-01 17:59:09 +00:00
Andre Eisenbach
2358043983 Merge "Always use Write Request for GATT descriptor writes" 2016-04-01 00:18:48 +00:00
Ajay Panicker
db005bdce9 Allow factory reset when bluetooth is off (1/2)
Bug: 27348444
Change-Id: I6c2709371b86581709649d7faf09391230449b9b
2016-03-31 23:39:15 +00:00
Andre Eisenbach
060956bf67 Fix log spam in getCharacteristicById()
Bug: 27744135
Change-Id: I43f6358484729dedd85eb52432ad9805a66ff81e
2016-03-31 18:00:14 +00:00
Andre Eisenbach
942aebc959 Always use Write Request for GATT descriptor writes
According to the Bluetooth Core specification v4.2, Vol 3, Part G,
section 4.12.3: "The Attribute Protocol WRITE REQUEST is used used
for this sub-procedure".

Change-Id: I86e4e1d3a8bfd7d78dfed8419f8abd2d7e89b2bc
2016-03-31 17:59:44 +00:00
Joseph Pirozzo
43b5d980d8 Merge "PBAP client Settings profile." into nyc-dev 2016-03-30 21:00:54 +00:00
Joseph Pirozzo
563c700f70 PBAP client Settings profile.
Add content to Settings and SettingsLib to add a checkbox for PBAP
client profile, and remove the box for PBAP server profile when the
client profile is enabled.

Bug: 27642222
Change-Id: I125559904a8e017a01ae90b1f6425129a87cbee3
2016-03-30 12:20:51 -07:00
Andre Eisenbach
613f430177 Always use Write Request for GATT descriptor writes
According to the Bluetooth Core specification v4.2, Vol 3, Part G,
section 4.12.3: "The Attribute Protocol WRITE REQUEST is used used
for this sub-procedure".

Change-Id: I86e4e1d3a8bfd7d78dfed8419f8abd2d7e89b2bc
2016-03-30 06:48:58 +00:00
Andre Eisenbach
1591d368d3 Fix log spam in getCharacteristicById()
Bug: 27744135
Change-Id: I43f6358484729dedd85eb52432ad9805a66ff81e
2016-03-30 03:27:20 +00:00
Jakub Pawlowski
c9d13c3e3e Use handles to identify GATT attributes (4/4)
Bug: 27778668
Change-Id: I01e095939df2f8dc433f14b473957c815ecade74
2016-03-21 20:10:54 -07:00
Jakub Pawlowski
bf0faed359 Change how services are passed up to the stack
Right now we pass all services, characteristics and descriptors one by one.
This patch changes that - now we pass whole GATT database at once.

Bug: 27455533
Change-Id: Ie42cd80072538e411904b9c9b011a978f26158b9
2016-03-21 19:58:27 -07:00
Jakub Pawlowski
a9e27ec0ab Use handles to identify GATT attributes (4/4)
Bug: 27778668
Change-Id: I01e095939df2f8dc433f14b473957c815ecade74
2016-03-22 00:39:28 +00:00
Ajay Panicker
001269ff89 Make BluetoothManagerCallback oneway to prevent waiting on response
Bug: 27384453
Change-Id: I2cd0f1bc03c7a1e887c89faa18d5baa6ca5be24a
2016-03-19 01:17:47 +00:00
Ajay Panicker
d455c8cd43 Make BluetoothManagerCallback oneway to prevent waiting on response
Bug: 27384453
Change-Id: I2cd0f1bc03c7a1e887c89faa18d5baa6ca5be24a
2016-03-18 22:47:26 +00:00
Jakub Pawlowski
8d312a84d6 Change how services are passed up to the stack
Right now we pass all services, characteristics and descriptors one by one.
This patch changes that - now we pass whole GATT database at once.

Bug: 27455533
Change-Id: Ie42cd80072538e411904b9c9b011a978f26158b9
2016-03-18 12:57:33 -07:00
Joseph Pirozzo
cfa8a64694 Add BluetoothProfile for PBAP PCE role.
Create a new Bluetooth profile for Pbap Client.

Bug: 27490041
Change-Id: I77d2c7eeeb8e955ea61386d784b02b14f415b318
2016-03-14 17:02:16 -07:00
Jeff Sharkey
fa6a1bc755 Sometimes to step forward, we need to go back. [2/2]
Change-Id: Iccabb95530a6e3c3950cb9a8dfe84e75354d2f5f
2016-03-01 17:36:23 -07:00
Jeff Sharkey
9ad443f59c Sometimes to step forward, we need to go back. [1/2]
Change-Id: Ibff95298dc2e6c09675018ad0c45506589b6312a
2016-03-01 17:28:36 -07:00
Jakub Pawlowski
b73ebc88d9 Hide android.bluetooth.OobData
Bug: 27385555
Change-Id: I1767909ca17b1b23a2f23ea4a5b4a02cc52eecde
2016-03-01 11:00:33 -08:00
Jeff Sharkey
50d1c044b5 Parcelable classes should always be final.
Also hide ConnectivityMetricsEvent which isn't being used yet.

Bug: 27415331
Change-Id: Iacdccddda504f3f669185f807b4f35b8dc2b0212
2016-02-29 16:46:09 -07:00