OSDN Git Service

android-x86/packages-apps-Bluetooth.git
7 years agoMerge "Fix formatting issue on Headset State Machine"
Treehugger Robot [Fri, 17 Mar 2017 21:49:01 +0000 (21:49 +0000)]
Merge "Fix formatting issue on Headset State Machine"

7 years agoFix formatting issue on Headset State Machine
Jack He [Thu, 9 Mar 2017 19:57:02 +0000 (11:57 -0800)]
Fix formatting issue on Headset State Machine

Test: build, no user visible effect
Merged-In: I482661d95ac6e30a6f55afa9970627e889907125
Change-Id: I482661d95ac6e30a6f55afa9970627e889907125

7 years agoMerge "Revert "jni: introduce ScopedBtAddr""
Andre Eisenbach [Fri, 17 Mar 2017 06:32:48 +0000 (06:32 +0000)]
Merge "Revert "jni: introduce ScopedBtAddr""

7 years agoRevert "jni: introduce ScopedBtAddr"
Andre Eisenbach [Fri, 17 Mar 2017 04:47:41 +0000 (04:47 +0000)]
Revert "jni: introduce ScopedBtAddr"

Causes crash on Fugu. Reverting for now until further investigation.

This reverts commit 2b233628767c0bf6ff21ae2acdeada8bea94e583.

Change-Id: I21daf6b75312695d7ccb83ae603aaeffc3c9e770

7 years agoMerge "LE Maximum Advertising Data Length (2/4)"
Jakub Pawlowski [Fri, 17 Mar 2017 05:13:44 +0000 (05:13 +0000)]
Merge "LE Maximum Advertising Data Length (2/4)"

7 years agoMerge "jni: introduce ScopedBtAddr"
Treehugger Robot [Fri, 17 Mar 2017 02:26:53 +0000 (02:26 +0000)]
Merge "jni: introduce ScopedBtAddr"

7 years agoLE Maximum Advertising Data Length (2/4)
Jakub Pawlowski [Fri, 17 Mar 2017 01:21:31 +0000 (18:21 -0700)]
LE Maximum Advertising Data Length (2/4)

Add ability to check maximum advertising data length.

Bug: 30622771
Test: manual
Change-Id: Ia912f9d738ec8dbf56205a1c22a21f687d9cb6cd

7 years agoMerge "Bluetooth 5 AdvertisingSet implementation (2/4)"
Treehugger Robot [Fri, 17 Mar 2017 01:01:15 +0000 (01:01 +0000)]
Merge "Bluetooth 5 AdvertisingSet implementation (2/4)"

7 years agojni: introduce ScopedBtAddr
Marie Janssen [Wed, 15 Feb 2017 20:49:52 +0000 (12:49 -0800)]
jni: introduce ScopedBtAddr

ScopedBtAddr handles marshalling bt_bdaddr_t into jbyteArrays so we
don't have to.  It also complains when it can't allocate things and
deletes the local reference when it goes out of scope.

Test: compiles, sanity tests with various profiles

Change-Id: I78a6364cc5cac0e8664d2d04388a6e2ac4c7a58f

7 years agoBluetooth 5 AdvertisingSet implementation (2/4)
Jakub Pawlowski [Mon, 13 Mar 2017 18:14:27 +0000 (11:14 -0700)]
Bluetooth 5 AdvertisingSet implementation (2/4)

This patch wires up fist methods of AdvertisingSet, making it possible
to start advertising and stop advertising. It also replaces legacy
implemementation with calls to new implementation.

Bug: 30622771
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: I35e7db5df1945d101402299f78dd541e346d548c

7 years agoMerge "AdapterService: Do not call System.exit() on onUnbind"
Treehugger Robot [Thu, 16 Mar 2017 17:33:47 +0000 (17:33 +0000)]
Merge "AdapterService: Do not call System.exit() on onUnbind"

7 years agoAdapterService: Do not call System.exit() on onUnbind
Jack He [Thu, 16 Mar 2017 04:35:28 +0000 (21:35 -0700)]
AdapterService: Do not call System.exit() on onUnbind

* Process termination should be handled by the OS
* System.exit() in onUnbind also prevents onDestroy() to be called
* Removed isMock() since its only use case is to check if System.exit()
  should be called

Bug: 35366908
Test: make, run java test, turning Bluetooth ON/OFF
Change-Id: Ieba927ce86d5dd27269f10188c74308fa76e66d9

7 years agoMerge "Broadcast ACTION_PAIRING_REQUEST to everyone again"
Treehugger Robot [Thu, 16 Mar 2017 00:01:54 +0000 (00:01 +0000)]
Merge "Broadcast ACTION_PAIRING_REQUEST to everyone again"

7 years agoBroadcast ACTION_PAIRING_REQUEST to everyone again
Marie Janssen [Wed, 15 Mar 2017 20:49:57 +0000 (13:49 -0700)]
Broadcast ACTION_PAIRING_REQUEST to everyone again

ACTION_PAIRING_REQUEST to be sent to all packages while new methods for
handling automated pairing are developed.

Test: AAP pairing && SL4A connection tests
Bug: 36024655
Bug: 35853357
Change-Id: Ib07adf5253c1e051ab2abc6e2ed711d8bbf107c9

7 years agoMerge "Fix advertise data length parsing"
Treehugger Robot [Wed, 15 Mar 2017 20:04:53 +0000 (20:04 +0000)]
Merge "Fix advertise data length parsing"

7 years agoFix advertise data length parsing
Jakub Pawlowski [Wed, 15 Mar 2017 18:11:32 +0000 (11:11 -0700)]
Fix advertise data length parsing

Bluetooth 5 advertise data can be longer than 128bytes. The length bit
must be properly converted to unsigned value for such long data.

Bug: 36086416
Test: manual
Change-Id: I7449ea99be2e78dd60dd90ec607b74f2bb02d213

7 years agoMerge "Initialize the Media Player list at start"
Andre Eisenbach [Tue, 14 Mar 2017 21:06:53 +0000 (21:06 +0000)]
Merge "Initialize the Media Player list at start"

7 years agoInitialize the Media Player list at start
Ajay Panicker [Tue, 14 Mar 2017 19:57:53 +0000 (12:57 -0700)]
Initialize the Media Player list at start

If the browsable list builder fails to receive any connect callbacks when
connecting to media services, we could be left in a state where the media
player list is uninitialized. This is fixed by always initializing the
media player list at the start of AVRCP.

Change-Id: I15088c1f4e8ffa2ac8a101339c9b47989fc17a5e
Fixes: 36151636
Test: Manually tested connecting AVRCP with AVIC-8100NEX

7 years agoMerge "Bluetooth 5 feature check implementation (3/3)"
Treehugger Robot [Sat, 11 Mar 2017 02:03:42 +0000 (02:03 +0000)]
Merge "Bluetooth 5 feature check implementation (3/3)"

7 years agoBluetooth 5 feature check implementation (3/3)
Jakub Pawlowski [Fri, 10 Mar 2017 02:18:13 +0000 (18:18 -0800)]
Bluetooth 5 feature check implementation (3/3)

Wire the new feature check API to actual values received from the
controller.

Test: manual
Bug: 30622771
Change-Id: I0812ed3ed8e28b8be34090ffb09c27d7a6405b8b

7 years agoMerge "PBAP PropertySelector"
Treehugger Robot [Fri, 10 Mar 2017 17:33:09 +0000 (17:33 +0000)]
Merge "PBAP PropertySelector"

7 years agoPBAP PropertySelector
Joseph Pirozzo [Wed, 1 Mar 2017 01:19:15 +0000 (17:19 -0800)]
PBAP PropertySelector

Fill out and transmit the PropertySelector when requesting to download
the phonebook.  Although the PropertySelector field is an optional field
and the default behavior is well specified when it is absent, some
phones do not adhere to the specification.  By sending the
PropertySelector field we can improve interoperability and eliminate
unneeded data.

Bug: 35322439
Change-Id: I25bcfce8bf4c7648c7cc07387bf02ebef600cf44
Test: Verification of filter bits set in wireshark and successfull
transfer of contact images, names, and numbers.

7 years agoMerge "Use fixed size scan response data"
Treehugger Robot [Wed, 8 Mar 2017 21:30:53 +0000 (21:30 +0000)]
Merge "Use fixed size scan response data"

7 years agoUse fixed size scan response data
Jakub Pawlowski [Wed, 8 Mar 2017 00:35:19 +0000 (16:35 -0800)]
Use fixed size scan response data

We used to return fixed size scan response  data before commit ed3417a6,
and some applications rely on this behaviour. For now make sure that all
apps get fixed data.

Bug: 36003118
Test: manual
Change-Id: Ieff1a933c01e7fcb0ae36f740048ccba2b3481b9

7 years agoMerge "Bluetooth 5 Advertising API"
Jakub Pawlowski [Wed, 8 Mar 2017 19:05:12 +0000 (19:05 +0000)]
Merge "Bluetooth 5 Advertising API"

7 years agoBluetooth 5 Advertising API
Jakub Pawlowski [Tue, 10 Jan 2017 08:48:56 +0000 (00:48 -0800)]
Bluetooth 5 Advertising API

Bug: 30622771
Test: manual
Change-Id: I3a670756e26345833ce595c9b22b8b39ae0ba41f

7 years agoMerge "Bluetooth 5 PHY change API"
Jakub Pawlowski [Wed, 8 Mar 2017 19:04:30 +0000 (19:04 +0000)]
Merge "Bluetooth 5 PHY change API"

7 years agoBluetooth 5 PHY change API
Jakub Pawlowski [Tue, 7 Feb 2017 15:33:07 +0000 (07:33 -0800)]
Bluetooth 5 PHY change API

Bug: 30622771
Test: manual
Change-Id: I859d23e7db95585551675d09c0b009222a475dd2

7 years agoMerge "Bluetooth 5 periodc scan API (2/2)"
Jakub Pawlowski [Wed, 8 Mar 2017 19:03:47 +0000 (19:03 +0000)]
Merge "Bluetooth 5 periodc scan API (2/2)"

7 years agoBluetooth 5 periodc scan API (2/2)
Jakub Pawlowski [Wed, 1 Mar 2017 00:25:50 +0000 (16:25 -0800)]
Bluetooth 5 periodc scan API (2/2)

Bug: 30622771
Test: manual
Change-Id: I2bde2072f55949b195b64e0ce333a40b4f6d6673

7 years agoMerge "Propagate Bluetooth 5 scan result properties"
Jakub Pawlowski [Wed, 8 Mar 2017 19:02:57 +0000 (19:02 +0000)]
Merge "Propagate Bluetooth 5 scan result properties"

7 years agoPropagate Bluetooth 5 scan result properties
Jakub Pawlowski [Tue, 7 Feb 2017 17:37:08 +0000 (09:37 -0800)]
Propagate Bluetooth 5 scan result properties

Bug: 30622771
Test: manual tests
Change-Id: Icbb353aa3435a97035c81384fc9031175a934239

7 years agoMerge "Bluetooth 5 feature check API (2/2)"
Jakub Pawlowski [Wed, 8 Mar 2017 19:02:11 +0000 (19:02 +0000)]
Merge "Bluetooth 5 feature check API (2/2)"

7 years agoBluetooth 5 feature check API (2/2)
Jakub Pawlowski [Wed, 8 Feb 2017 02:05:28 +0000 (18:05 -0800)]
Bluetooth 5 feature check API (2/2)

Bug: 30622771
Test: manual
Change-Id: I90e2efe989745c07c2f2fb8f4ea5bc3b718382f6

7 years agoMerge "OPP: Add OPP 1.2 feature."
Treehugger Robot [Wed, 8 Mar 2017 00:28:30 +0000 (00:28 +0000)]
Merge "OPP: Add OPP 1.2 feature."

7 years agoOPP: Add OPP 1.2 feature.
Hemant Gupta [Thu, 16 Feb 2017 15:03:00 +0000 (20:33 +0530)]
OPP: Add OPP 1.2 feature.

Add changes to support OPP 1.2 which uses OBEX over L2CAP.

Test: Connect with Remote OPP Client supporting OPP 1.2 and verify
that connection and transfer happens over L2CAP. Connect with Remote
OPP Client supporting OPP 1.1 and verify that connection and transfer
happens over RFCOMM.

Bug: 33010988
Change-Id: I44c2f2f01fb04f4306d0eb121d66dc08954966c0

7 years agoMerge "HID: Access JNI callback object when valid."
Treehugger Robot [Tue, 28 Feb 2017 16:39:15 +0000 (16:39 +0000)]
Merge "HID: Access JNI callback object when valid."

7 years agoHID: Access JNI callback object when valid.
Hemant Gupta [Mon, 6 Feb 2017 09:00:08 +0000 (14:30 +0530)]
HID: Access JNI callback object when valid.

Usecase:
Perform BT off/on with HID connection in stress loop overnight.
Expectation:
BT should not crash, and should work normally after stress test.
Observation:
BT crash observed due to dereference of JNI object whch was NULL.
Coredump
=========================
pid: 4629, tid: 4711, name: BT Service Call  >>> com.android.bluetooth <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'art/runtime/java_vm_ext.cc:470]
JNI DETECTED ERROR IN APPLICATION: obj == null'
=====================
bt_btif : btif_hh_upstreams_evt: BTA_HH_OPN_EVT: handle=255, status =7
bt_btif : in, bd addr:00:1f:20:ea:ca:8b, prop type:4, len:4
bt_btif_dm: get_cod remote_cod = 0x00002540
I bt_btif : HAL bt_hh_callbacks->connection_state_cb
JNI DETECTED ERROR IN APPLICATION: obj == null
    in call to CallVoidMethodV
"BT Service Callback Thread" prio=5 tid=12 Runnable
  | group="main" sCount=0 dsCount=0 obj=0x12ca8b80 self=0xe7a84400
  | sysTid=4711 nice=0 cgrp=default sched=0/0 handle=0xd8f88920
  | state=R schedstat=( 75150605353 59660157373 74582 ) utm=3592
  stm=3923 core=4 HZ=100
  | stack=0xd8e8c000-0xd8e8e000 stackSize=1014KB
  | held mutexes= "mutator lock"(shared held)
  native: #00 pc 00377955  /system/lib/libart.so (_ZN3art15Dump
  NativeStackERNSt3
  __113basic_ostreamIcNS0_11char_traitsIcEEEEiP12
  BacktraceMapPKcPNS_9ArtMethodEPv+128)
  native: #01 pc 0035795d  /system/lib/libart.so (_ZNK3art6Thread9
  DumpStackERNSt3
  __113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+304)
  native: #02 pc 00250d79  /system/lib/libart.so (_ZN3art9JavaVMExt8
  JniAbortEPKcS2_+812)
  native: #03 pc 0025103d  /system/lib/libart.so (_ZN3art9JavaVMExt9
  JniAbortFEPKcS2_z+72)
  native: #04 pc 00284127  /system/lib/libart.so (_ZN3art3JNI15Call
  VoidMethodVEP7_
  JNIEnvP8_jobjectP10_jmethodIDSt9__va_list+478)
  native: #05 pc 00005f81  /system/lib/libbluetooth_jni.so (???)
  native: #06 pc 00010d27  /system/lib/libbluetooth_jni.so (???)
  native: #07 pc 000657bf  /system/lib/hw/bluetooth.default.so (???)
=======================

Root cause:
For quick BT turn on/off cases there may be instances where callback from btif
is triggered even before callback object is created or cleanup path may clear
callback object just before stray btif callback call tries to access the same.

Fix:
Check if callback object is valid before trying to access the same

Test: Crash not observed in stress test with hid connection and BT on/off.

Bug: 35023377
Change-Id: Id9b526bfec2bf74d7110601f85e111088a1e7d76

7 years agoMerge "Exception and death notification handling for ISap."
Amit Mahajan [Thu, 23 Feb 2017 02:00:16 +0000 (02:00 +0000)]
Merge "Exception and death notification handling for ISap."

7 years agoMerge "jni: cleanup compiler warnings"
Treehugger Robot [Wed, 22 Feb 2017 18:35:49 +0000 (18:35 +0000)]
Merge "jni: cleanup compiler warnings"

7 years agojni: cleanup compiler warnings
Marie Janssen [Wed, 22 Feb 2017 15:26:34 +0000 (07:26 -0800)]
jni: cleanup compiler warnings

Test: compiles without warnings
Change-Id: I6f0b13648a624047aee0ac728e7a6c27e7bfad33
Fix: 35636708

7 years agoMerge "HID: Send connection state change broadcast during cleanup"
Treehugger Robot [Tue, 21 Feb 2017 19:15:00 +0000 (19:15 +0000)]
Merge "HID: Send connection state change broadcast during cleanup"

7 years agoMerge "Use base::Callbacks in BleScannerInterface (3/3)"
Jakub Pawlowski [Tue, 21 Feb 2017 18:03:40 +0000 (18:03 +0000)]
Merge "Use base::Callbacks in BleScannerInterface (3/3)"

7 years agoHID: Send connection state change broadcast during cleanup
Hemant Gupta [Wed, 2 Nov 2016 08:19:13 +0000 (16:19 +0800)]
HID: Send connection state change broadcast during cleanup

Usecase:
1) Connect HID device with DUT
2) Turn Off BT

Observation:
HID state change is not received by application leading to
application showing connected even when BT is turned off and
HID was connected.

Rootcause:
HidService does not send state change to application if BT is turned off
while connected

Fix:
Send broadcast for HID connection state change during cleanup.

Test: Verified that connection state change intent is received by upper layers
during BT off if HID was connected.

Bug: 35013637
Change-Id: I5d7989887f9089876c78e43d97d066f384cc237e

7 years agoUse base::Callbacks in BleScannerInterface (3/3)
Jakub Pawlowski [Thu, 16 Feb 2017 20:00:20 +0000 (12:00 -0800)]
Use base::Callbacks in BleScannerInterface (3/3)

The remaining four native callbacks need more internal refactoring
before they can be turned into a callbacks.

Bug: 30622771
Test: sl4a FilteringTest
Change-Id: Ibe3cd66af9598a7d0294d36550bf35ab8ddfda43

7 years agoMerge "PBAP: Fix Functionality failure for PBAP"
Treehugger Robot [Fri, 17 Feb 2017 23:09:35 +0000 (23:09 +0000)]
Merge "PBAP: Fix Functionality failure for PBAP"

7 years agoMerge "OPP: Fix Functionality failure for OPP Rx"
Treehugger Robot [Fri, 17 Feb 2017 21:30:33 +0000 (21:30 +0000)]
Merge "OPP: Fix Functionality failure for OPP Rx"

7 years agoOPP: Fix Functionality failure for OPP Rx
Hemant Gupta [Fri, 17 Feb 2017 03:10:37 +0000 (08:40 +0530)]
OPP: Fix Functionality failure for OPP Rx

Usecase:
Send file from Remote BT device to DUT

Expectation:
File should be received properly

Observation:
File reception popup does not occur on DUT

Root Cause:
Socket listener not started for OPP

Fix:
Add changes to properly start listeners for OPP

Test:
1) Verified that SDP records for OPP are exposed and can be browsed
  by remote OPP Client.
2) File can be received without issues from OPP Client.

Bug: 35416619
Change-Id: I5b4f343f3fd7b957ce423ce2cb76cd0683e10c3a

7 years agoPBAP: Fix Functionality failure for PBAP
Hemant Gupta [Fri, 17 Feb 2017 03:16:16 +0000 (08:46 +0530)]
PBAP: Fix Functionality failure for PBAP

Usecase:
Connect to DUT from PBAP Client (Carkit)

Expectation:
Carkit is able to browse PBAP SDP and connect to PBAP Profile
with DUT

Observation:
PBAP Connection is successful

Root Cause:
Socket listener not started for PBAP

Fix:
Add changes to properly start listeners for PBAP

Test:
1) Verified that SDP records for PBAP are exposed and can be browsed
  by remote PBAP Client.
2) Connection happens fine and phonebook can eb downloaded properly.

Bug: 35416619
Change-Id: I52acb1c10b91dd5ffecc44badcfd60f0e27b0a55

7 years agoMerge "Add Loopers to tests that require them for message handlers"
Ajay Panicker [Fri, 17 Feb 2017 00:34:56 +0000 (00:34 +0000)]
Merge "Add Loopers to tests that require them for message handlers"

7 years agoAdd Loopers to tests that require them for message handlers
Ajay Panicker [Thu, 19 Jan 2017 02:13:54 +0000 (18:13 -0800)]
Add Loopers to tests that require them for message handlers

Bug: 34193424
Test: runtest bluetooth no longer fails
Change-Id: I4612cfb9c16b53293f52350e7f0abe9fb70c7543

7 years agoMerge "Broadcast BOND_STATE_CHANGED to foreground."
Marie Janssen [Thu, 16 Feb 2017 22:54:42 +0000 (22:54 +0000)]
Merge "Broadcast BOND_STATE_CHANGED to foreground."

7 years agoBroadcast BOND_STATE_CHANGED to foreground.
Marie Janssen [Wed, 15 Feb 2017 01:42:38 +0000 (17:42 -0800)]
Broadcast BOND_STATE_CHANGED to foreground.

Limiting BOND_STATE_CHANGED to settings app meant accessories apps can't
determine when a device completes pairing.

Test: pairing tests with various devices
Bug: 35234069
Bug: 35325574
Change-Id: If9fffb3410ec051b96e65b867571e93ae56ca706

7 years agoMerge "Prevent getting Session Token if media browser isn't connected"
Treehugger Robot [Tue, 14 Feb 2017 23:51:18 +0000 (23:51 +0000)]
Merge "Prevent getting Session Token if media browser isn't connected"

7 years agoPrevent getting Session Token if media browser isn't connected
Ajay Panicker [Tue, 14 Feb 2017 20:27:01 +0000 (12:27 -0800)]
Prevent getting Session Token if media browser isn't connected

Bug: 35348574
Test: Sanity test browsing with VW Carkit
Change-Id: I795a19f4bd0a95d36f64bc767fdeda108c20f5ed

7 years agoMerge "Services: start PBAP and OPP like other services"
Marie Janssen [Tue, 14 Feb 2017 01:36:02 +0000 (01:36 +0000)]
Merge "Services: start PBAP and OPP like other services"

7 years agoServices: start PBAP and OPP like other services
Marie Janssen [Tue, 7 Feb 2017 17:42:04 +0000 (09:42 -0800)]
Services: start PBAP and OPP like other services

PBAP and OPP are currently normal services that are started and stopped
by the system.  Have AdapterService start them just like all of the
other profile services instead.

Bug: 34395439
Fix: 35216901
Test: connect to a carkit that does PBAP
Test: use beam to receive a file
Change-Id: I84e769886f6aa4e698bd07fb9900f124111b50b3

7 years agoMerge "Remove use of Contacts.IN_VISIBLE_GROUP"
Treehugger Robot [Mon, 13 Feb 2017 22:08:19 +0000 (22:08 +0000)]
Merge "Remove use of Contacts.IN_VISIBLE_GROUP"

7 years agoException and death notification handling for ISap.
Amit Mahajan [Mon, 13 Feb 2017 19:57:01 +0000 (11:57 -0800)]
Exception and death notification handling for ISap.

Test: Basic telephony sanity
Bug: 32020264
Change-Id: I3d710fc59a397fe0054b286d422066f9ff149262

7 years agoRemove use of Contacts.IN_VISIBLE_GROUP
Hemant Gupta [Sat, 11 Feb 2017 03:05:27 +0000 (08:35 +0530)]
Remove use of Contacts.IN_VISIBLE_GROUP

IN_VISIBLE_GROUP is a column that should not be used by Bluetooth
and is only relevant for the Contacts App.

Change-Id: I05866ccdfd565643564bf4217a4dfaf196e26d16
Bug: 35013623

7 years agoMerge "Use resources for pairing ui package"
Marie Janssen [Mon, 13 Feb 2017 20:02:31 +0000 (20:02 +0000)]
Merge "Use resources for pairing ui package"

7 years agoMerge "Use END:MSG to determine bMessage body end"
Treehugger Robot [Sat, 11 Feb 2017 02:00:28 +0000 (02:00 +0000)]
Merge "Use END:MSG to determine bMessage body end"

7 years agoUse END:MSG to determine bMessage body end
Ajay Panicker [Tue, 7 Feb 2017 21:11:39 +0000 (13:11 -0800)]
Use END:MSG to determine bMessage body end

Use END:MSG to determine the end of a message body instead of using
an incorrect length that was sent by the carkit,

Change-Id: Idf93a6fec50755ad5e9433e237ebca242e2d83aa
Fixes: 35102373
Test: Send multiple messages from Chrysler carkit and TestTracker:75287

7 years agoUse resources for pairing ui package
Marie Janssen [Fri, 10 Feb 2017 19:47:00 +0000 (11:47 -0800)]
Use resources for pairing ui package

The pairing package is set to "com.android.settings" which means
overlays can't change the package that's responsible for UI interaction
when pairing and access request events happen.  Move it to a resource.

Test: pair a device, initiate pair from remote
Change-Id: I5731bcdcfed58b72b4e15e3e60035c7e8144b7d4
Bug: 35163738
Fix: 35219650

7 years agoMerge "Use non-hardcoded advertisement data size"
Treehugger Robot [Thu, 9 Feb 2017 21:12:31 +0000 (21:12 +0000)]
Merge "Use non-hardcoded advertisement data size"

7 years agoUse non-hardcoded advertisement data size
Jakub Pawlowski [Tue, 7 Feb 2017 21:49:38 +0000 (13:49 -0800)]
Use non-hardcoded advertisement data size

Bug: 30622771
Test: sl4a FilteringTest
Change-Id: Iddaf3772310a6816c40fb8aee3c8e7ef831daca5

7 years agoMerge "Abort fetching items if remote sends us an error"
Treehugger Robot [Thu, 9 Feb 2017 01:57:21 +0000 (01:57 +0000)]
Merge "Abort fetching items if remote sends us an error"

7 years agoMerge "Broadcast pairing intents to settings package"
Marie Janssen [Thu, 9 Feb 2017 00:57:44 +0000 (00:57 +0000)]
Merge "Broadcast pairing intents to settings package"

7 years agoAbort fetching items if remote sends us an error
Sanket Agarwal [Wed, 8 Feb 2017 22:31:50 +0000 (14:31 -0800)]
Abort fetching items if remote sends us an error

Currently most of errors from stack for GetFolderItems response come
back in form of a empty response list. Since we keep looping to get more
items, we often get stuck in a loop. Aborting is the right thing to do
here

Bug: b/35152188
Test: Try browsing over a folder which returns an error (not Out of
range) when trying to browse

Change-Id: I69bb90da71c55d46c04eaeab5a78026f22be9e02

7 years agoMerge "Handle conference calling w/ multi device"
Treehugger Robot [Wed, 8 Feb 2017 22:33:30 +0000 (22:33 +0000)]
Merge "Handle conference calling w/ multi device"

7 years agoMerge "Handle volume changes for multiple devices"
Treehugger Robot [Wed, 8 Feb 2017 22:06:29 +0000 (22:06 +0000)]
Merge "Handle volume changes for multiple devices"

7 years agoMerge "Remove use of Contacts.IN_VISIBLE_GROUP"
Treehugger Robot [Wed, 8 Feb 2017 20:56:44 +0000 (20:56 +0000)]
Merge "Remove use of Contacts.IN_VISIBLE_GROUP"

7 years agoHandle conference calling w/ multi device
Sanket Agarwal [Wed, 8 Feb 2017 02:57:42 +0000 (18:57 -0800)]
Handle conference calling w/ multi device

Bug: b/34983172
Test: Make a conference call and hangup (hangup should not crash the
stack)

Change-Id: I5b9707e227071acfe13ebad1575fc12d22087f81

7 years agoHandle volume changes for multiple devices
Sanket Agarwal [Tue, 7 Feb 2017 20:51:34 +0000 (12:51 -0800)]
Handle volume changes for multiple devices

Since synchronizing volume of multiple HFP connected devices is rather
cumbersome as a UX, we will make the car control the volume of the call
and the phone's volume will remain unchanged. The only scenario that
this breaks is when the user is trying to change the phone volume while
being in a call and connected over Bluetooth. This scenario should
anyways not happen for dirving safety

Bug: b/34518638
Test: Volume change w/ multiple AG connected to HF
Change-Id: Ic4345a71bfb677f94cf6543b1b2c64fb99676ed3

7 years agoRemove use of Contacts.IN_VISIBLE_GROUP
Ajay Panicker [Mon, 6 Feb 2017 23:29:12 +0000 (15:29 -0800)]
Remove use of Contacts.IN_VISIBLE_GROUP

IN_VISIBLE_GROUP is a column that should not be used by Bluetooth
and is only relevant for the Contacts App.

Change-Id: If7dc10a899ce820f61758dea8346b780319ed994
Fixes: 35064907
Test: PBAP sanity test with Ford Carkit and TestTracker:75170

7 years agoMerge "HF Client: SCO routing for multiple devices"
Sanket Agarwal [Tue, 7 Feb 2017 20:14:19 +0000 (20:14 +0000)]
Merge "HF Client: SCO routing for multiple devices"

7 years agoHF Client: SCO routing for multiple devices
Sanket Agarwal [Mon, 6 Feb 2017 23:49:48 +0000 (15:49 -0800)]
HF Client: SCO routing for multiple devices

Bug: b/34518638
Test: Manual testing w/ multiple active calls and SCO switching

Change-Id: Ic5e2dc8da69ee6c0e93a8b57a5f41a26b7b09513

7 years agoMerge "Propagate BT5 specific scan result properties up the stack (3/3)"
Jakub Pawlowski [Tue, 7 Feb 2017 01:29:25 +0000 (01:29 +0000)]
Merge "Propagate BT5 specific scan result properties up the stack (3/3)"

7 years agoMerge "Add a mechanism to configure the default A2DP codec priorities"
Treehugger Robot [Mon, 6 Feb 2017 22:59:50 +0000 (22:59 +0000)]
Merge "Add a mechanism to configure the default A2DP codec priorities"

7 years agoPropagate BT5 specific scan result properties up the stack (3/3)
Jakub Pawlowski [Mon, 30 Jan 2017 14:42:54 +0000 (06:42 -0800)]
Propagate BT5 specific scan result properties up the stack (3/3)

Bug: 30622771
Test: sl4a FilteringTest
Change-Id: I0afb900871cbc2f556ad506e21515e4ca8c49142

7 years agoAdd a mechanism to configure the default A2DP codec priorities
Pavlin Radoslavov [Thu, 2 Feb 2017 01:36:10 +0000 (17:36 -0800)]
Add a mechanism to configure the default A2DP codec priorities

Previously, the relative codec priorities were hard-codec internally.
The new mechanism uses the following configurable resources in
packages/apps/Bluetooth/res/values/config.xml to re-assign the
default codec priorities per device, or to explicitly disable a codec.

 - a2dp_source_codec_priority_sbc
 - a2dp_source_codec_priority_aac
 - a2dp_source_codec_priority_aptx
 - a2dp_source_codec_priority_aptx_hd
 - a2dp_source_codec_priority_ldac

Those values are assigned on startup.
Also, they can be changed per device by using an overlay:
device/<VENDOR>/<DEVICE>/overlay/packages/apps/Bluetooth/res/values/config.xml

Test: Manually streaming to a headset
Change-Id: Ic3cf8549b46547dbeba93632c3178c6b7f2b810d

7 years agoBroadcast pairing intents to settings package
Marie Janssen [Fri, 20 Jan 2017 01:43:40 +0000 (17:43 -0800)]
Broadcast pairing intents to settings package

Intent broadcasts intended directly for pairing dialogs should only be
specifically targetted to those packages.

Bug: 34395439
Test: pair a device, pair a device remotely, and connect devices
Change-Id: Ieb1354d534d4dc0457279aa3f1d3020b3a3ee37b

7 years agoMerge "Client changes for BT SAP hidl."
Treehugger Robot [Thu, 2 Feb 2017 17:35:21 +0000 (17:35 +0000)]
Merge "Client changes for BT SAP hidl."

7 years agoClient changes for BT SAP hidl.
Amit Mahajan [Sat, 10 Dec 2016 23:10:31 +0000 (15:10 -0800)]
Client changes for BT SAP hidl.

Test: Basic SAP sanity.

Bug: 32020264
Change-Id: If001ff221e3240a31cfbb08df11cbf6188ebd07e

7 years agoMerge "Update the A2DP Codec Config API"
Pavlin Radoslavov [Tue, 31 Jan 2017 19:02:35 +0000 (19:02 +0000)]
Merge "Update the A2DP Codec Config API"

7 years agoUpdate the A2DP Codec Config API
Pavlin Radoslavov [Thu, 26 Jan 2017 00:58:05 +0000 (16:58 -0800)]
Update the A2DP Codec Config API

Previously, the JNI upcall would contain only the current codec config.
In the new API, the upcall contains:
 1. The current codec config
 2. The list of codecs containing the local codecs capabilities
 3. The list of codecs containing the selectable codecs capabilities.
    This list is the intersection of the local codecs capabilities
    and the capabilities of the paired device.

Also, refactored the Java internals to accomodate the extra information:
 * Added new class BluetoothCodecStatus that contains the extra info:
   current codec config, local codecs capabilities and selectable
   codecs capabilities
 * Renamed method getCodecConfig() to getCodecStatus() and return the
   corresponding BluetoothCodecStatus object.
 * Updates to class BluetoothCodecConfig:
   new methods isValid(), getCodecName(), and updated toString()
   so it is more user friendly
 * Removed BluetoothCodecConfig.EXTRA_CODEC_CONFIG and
   EXTRA_PREVIOUS_CODEC_CONFIG.
   The former is superseded by BluetoothCodecStatus.EXTRA_CODEC_STATUS;
   the latter is not really used.

Test: A2DP streaming with headsets and switching the codecs
Change-Id: I18536cffc5c73abc31c3d6afa54f9d3c3b1d577e

7 years agoMerge "jni: use ScopedLocalRef where possible"
Marie Janssen [Mon, 30 Jan 2017 18:26:04 +0000 (18:26 +0000)]
Merge "jni: use ScopedLocalRef where possible"

7 years agojni: use ScopedLocalRef where possible
Marie Janssen [Tue, 11 Oct 2016 20:54:41 +0000 (13:54 -0700)]
jni: use ScopedLocalRef where possible

RAII simplifies code paths and eliminates errors.

Test: mma -j40, sanity testing on devices

Change-Id: I278f91445217c898a868b8328549c080d7123dbb

7 years agoMerge "AdapterService: track last discovering timestamp"
Marie Janssen [Mon, 30 Jan 2017 17:46:17 +0000 (17:46 +0000)]
Merge "AdapterService: track last discovering timestamp"

7 years agoAdapterService: track last discovering timestamp
Marie Janssen [Tue, 24 Jan 2017 20:55:22 +0000 (12:55 -0800)]
AdapterService: track last discovering timestamp

getDiscoveryEndMillis() is an alternative to the DISCOVERY_FINSHED
intent and provides a way to avoid restarting discovery if we've
just been discovering.

Test: compiles and discovery still works
Bug: 34395439
Change-Id: I4334e99ae8665fc0a0d5d11229897505fae8510b

7 years agoMerge "A2DP Audio Focus"
Treehugger Robot [Fri, 27 Jan 2017 00:51:19 +0000 (00:51 +0000)]
Merge "A2DP Audio Focus"

7 years agoA2DP Audio Focus
Joseph Pirozzo [Wed, 25 Jan 2017 01:11:07 +0000 (17:11 -0800)]
A2DP Audio Focus

Update A2dpSinkStateMachine to handle audio focus for notifications and
navigation. Simplified state machine to boolean flags to track user
intent and availability of audio stream and audio focus.

Bug: 31215324
Test: Manual music streaming, navigation, and assistant.  Tested
navigation, assistant and music streaming with phones from several major
manufacturers.  Tests were to verify proper transitions in both audio
and playback state while music was playing locally and streamed via
Bluetooth. Additionally b/34722788 was written to capture unit tests.

Change-Id: If8e89588ca24bdedf2c57c989f8a960353ccbe9a

7 years agoMerge "Rename "Bluetooth Share" to "Bluetooth""
Treehugger Robot [Wed, 25 Jan 2017 18:07:05 +0000 (18:07 +0000)]
Merge "Rename "Bluetooth Share" to "Bluetooth""

7 years agoRename "Bluetooth Share" to "Bluetooth"
Jack He [Tue, 24 Jan 2017 22:08:57 +0000 (14:08 -0800)]
Rename "Bluetooth Share" to "Bluetooth"

* Replace the string resource "Bluetooth Share" to "Bluetooth" in
  family of English languages

Bug: 34059841
Test: Code compilation, manual crash triggerring to verify correct
      display title

Change-Id: I4ee94a59c9d37405b4687951e350edb67386c5e0

7 years agoMerge "Init JNI in Bluetooth Service not the Bluetooth State machine"
Sanket Agarwal [Wed, 25 Jan 2017 02:02:55 +0000 (02:02 +0000)]
Merge "Init JNI in Bluetooth Service not the Bluetooth State machine"

7 years agoInit JNI in Bluetooth Service not the Bluetooth State machine
Sanket Agarwal [Tue, 24 Jan 2017 22:59:31 +0000 (14:59 -0800)]
Init JNI in Bluetooth Service not the Bluetooth State machine

Since we can have multiple state machines the right lifecycle management
should be done in the Bluetooth service with start and stop operations.
Otherwise, there could be JNI crashes, due to JNI callbacks before the
JNI is setup.

Bug: b/34681827
Test: Connect device over HFP and make a call
Change-Id: I3ebe9d035511ca830f131d5b09461ecccfcc4672

7 years agoMerge "Multi HFP connection handling"
Sanket Agarwal [Tue, 24 Jan 2017 19:01:13 +0000 (19:01 +0000)]
Merge "Multi HFP connection handling"

7 years agoMerge "Ignore ACTION_UUID intent when no uuids present"
Andre Eisenbach [Tue, 24 Jan 2017 06:59:19 +0000 (06:59 +0000)]
Merge "Ignore ACTION_UUID intent when no uuids present"

7 years agoMerge "Test to verify devices with no UUIDs dont crash Phone Policy"
Andre Eisenbach [Tue, 24 Jan 2017 06:58:47 +0000 (06:58 +0000)]
Merge "Test to verify devices with no UUIDs dont crash Phone Policy"

7 years agoTest to verify devices with no UUIDs dont crash Phone Policy
Sanket Agarwal [Tue, 24 Jan 2017 06:52:45 +0000 (22:52 -0800)]
Test to verify devices with no UUIDs dont crash Phone Policy

Bug: b/34640345
Test: This is a unit test
Change-Id: If8a6826d7616abedaa04bca404c5b32d84322c10