OSDN Git Service
Joseph Pirozzo [Tue, 5 Apr 2016 21:25:18 +0000 (14:25 -0700)]
Make PBAP PCE (Client) role auto-connectable.
Set the default flag to enable contact sharing from Car Kit by default
like the other autoconnect profiles.
Bug:
27977457
Change-Id: Ibbd09ea93ff402193e8a03ba77148dea9417a488
Sanket Agarwal [Tue, 5 Apr 2016 23:26:29 +0000 (16:26 -0700)]
Change A2dpSinkService package from a2dp -> a2dpsink.
Change go/ag/901764/ changed the package of A2dpSinkService but the JNI
did not do the appropriate change.
Bug:
27744764
Bug:
28025011
Change-Id: I9a6cc0e695bef152c1bdf461a5f92468db5172ab
Sanket Agarwal [Thu, 31 Mar 2016 00:53:54 +0000 (17:53 -0700)]
Move MediaBrowserService to Bluetooth Process
MediaBrowserService exports A2DP streaming features to the rest of stack
using the MediaBrowser API. Currently it was being stareted by
BOOT_COMPLETE which made it start very late. Also that meant that some
of the broadcasts for the connection events is lost. Now it is started
by the A2DP state machine so that we do not miss any state changes.
Bug:
27744764
Change-Id: I193b4adfea09cbd90e41f1a217383b6aa234ef2b
Ajay Panicker [Wed, 23 Mar 2016 17:45:52 +0000 (10:45 -0700)]
Add GATT server scan stats and extra protection
Bug:
27811549
Change-Id: I9138193f8e0dec4e548c57b635bad3703961088f
Joseph Pirozzo [Fri, 1 Apr 2016 23:51:31 +0000 (16:51 -0700)]
Autoconnect Car Profiles
Update profiles used in Car to enable and require PRIORITY_AUTO_CONNECT
to automatically connect when Adapter turns on.
Bug:
27899874
Change-Id: I33bf7cabe959b47954e3aced2af8a5ce8444b9ad
Alan Viverette [Thu, 31 Mar 2016 20:18:44 +0000 (16:18 -0400)]
Remove DayNight theme
Bug:
21854466
Change-Id: Iebd75177ca302af975a76787a22fecf79a77ef26
Joseph Pirozzo [Wed, 30 Mar 2016 21:00:52 +0000 (21:00 +0000)]
Merge "PBAP client priority settings." into nyc-dev
Joseph Pirozzo [Fri, 25 Mar 2016 23:34:34 +0000 (16:34 -0700)]
PBAP client priority settings.
Implement get/setPriority for PbapClient such that the settings dialog
and connect at startup work appropriately.
Bug:
27642222
Change-Id: I9c02d4d08809c6cc4230c71031d880b3d09f0cc4
Pavlin Radoslavov [Tue, 29 Mar 2016 23:41:08 +0000 (16:41 -0700)]
Add a missing null check inside A2dpService.resetAvrcpBlacklist()
Add a missing null pointer check inside method
A2dpService.resetAvrcpBlacklist()
Also:
- Removed BondStateMachine.setProfilePriority() because it is
not used.
- Fix a typo "priorty" -> "priority"
- Fix a log message.
Bug:
27837879
Change-Id: Ieabf00d2ff1e49aa06598674f14e97eb9086d432
Ajay Panicker [Mon, 28 Mar 2016 21:58:49 +0000 (21:58 +0000)]
Revert "Add guest mode functionality (1/5)"
This reverts commit
6e2c4a130d93e448decc67991690fd8d1f83a343.
Change-Id: Iae9ecfc53a4e405bc04d21822a79112f7dc63247
Ajay Panicker [Fri, 18 Mar 2016 00:12:08 +0000 (17:12 -0700)]
Add guest mode functionality (1/5)
Add a flag to enable() to start Bluetooth in restricted
mode. In restricted mode, all devices that are paired during
restricted mode are deleted upon leaving restricted mode.
Right now restricted mode is only entered while a guest
user is active.
Bug:
27410683
Change-Id: I561225652509b29ac6b0d194a3a50e29c5569365
Jakub Pawlowski [Thu, 24 Mar 2016 23:39:02 +0000 (16:39 -0700)]
GATT JNI - get_gatt_db_cb leaking local refs
Bug:
27835277
Change-Id: I4bd0beb763507ea8a4a43a0f707408757f6ce8e0
Andre Eisenbach [Mon, 28 Mar 2016 04:33:51 +0000 (04:33 +0000)]
Merge changes from topic 'pts-test-fix-sync-
20160335-1' into nyc-dev
* changes:
Fix more merge issues in BluetoothPbapVcardManager.java
PBAPS: Don't filter out DateTime when requested
PBAPS: Fix duplicate entries fetched from database
PBAPS: Get vcard when asked in alphabetical order
PBAPS: Enable contact search with full or part of given string
SAP: Fix ANR(s) in SAP server code
SAP: Remove sdp record while BT is being turned off to prevent leak
SAP: Fix issue of socket listener not getting re-started
SAP: Update UI connection and notifications properly
SAP: Handle disconnect request during call ongoing state
OPP: Update share status when interrupted at remote side.
OPP: Use long instead of int
MAP: Fix ANR for blocking operations on UI thread
MAP: Track ProfileState, register and unregister of BroadcastReceivers
MAP: CleanUp for SDP record in MAP Service shutdown
MAP: GETMessagesLisitng include mandatory field always.
MAP: Cleanup PendingIntent in cancelUserTimeoutAlarm.
MAP: Handle possible NPE while disconnect map.
MAP: Add MNS SDP Search during setNotificationRegistration.
MAP: Declare and fetch only 'INTERESTED_MESSAGE_TYPE_CLAUSE' MMS.
MAP: Synchronize notifcationReg reply and MNS connect action.
Send error for if VR is initiated during call.
Sharvil Nanavati [Sat, 26 Mar 2016 00:03:53 +0000 (17:03 -0700)]
Fix NPE when performing BLE scans.
Bug:
27811549
Change-Id: I017b34745682dd9db5487921df5c01dfde93d67c
Andre Eisenbach [Fri, 25 Mar 2016 21:39:40 +0000 (14:39 -0700)]
Fix more merge issues in BluetoothPbapVcardManager.java
Change-Id: I901042e69b3beea93684fe1a194353664fabd0c2
Smriti Gupta [Fri, 14 Aug 2015 11:18:48 +0000 (16:48 +0530)]
PBAPS: Don't filter out DateTime when requested
This only adds a special exception for DateTime,
the other "X-" fields are already filtered out since
for vcard 2.1, it is mandatory to provide DateTime
if requested by remote.
Change-Id: Ib25a9b085d5692548156068b9700e2b007c4bcee
Smriti Gupta [Mon, 30 Nov 2015 12:45:14 +0000 (18:15 +0530)]
PBAPS: Fix duplicate entries fetched from database
Precondition
================
Have multple contacts with either same number or name in DUT
Steps to reproduce:
===================
1. Perform BT pairing from DUT->RD<1>
2. Search for name from remote.
Expected Result:
================
Single entry with the name should be returned
Actual Result:
==============
Single name entry with different numbers are duplicating
Fix
========
This patch will remove the duplicate entries having same handle
and name fetched from the database sometimes. The check was
there in the stock code but that was not sufficient and was
comparing with the previous value only if these are duplicates
and not with the whole list. I have updated this check to
compare the fetched value if the exact duplicate value
(same ID and NAME) is present in the final list of contacts
which is to be returned.
Change-Id: If32526076baed813d39ce298c307196b63bc46fd
Hemant Gupta [Mon, 23 Nov 2015 11:08:05 +0000 (16:38 +0530)]
PBAPS: Get vcard when asked in alphabetical order
Precondition:
=============
- PSE should have atleast 40 contacts with all alphabetical permutations
Step by Step procedure:
=======================
1. Establish PBAP session. Navigate to "Browse" Tab
2. Select telecom/pb.vcf on remote device and select "SETPHONEBOOK"
3. Select "Get Size" from remote device
4. Select default sorting, maxlistcount = 5000 and click "Search" to
browse phonebook
5. Select "Alphabetical" sorting, maxlistcount = 5000 and click "Search"
to browse phonebook
Actual Result
============================
After alphabetical sorting the contacts are displayed according to index
but not with sorted request
Expected result:
=========================
When contacts are sorted according to alphabets the contact info should
also be displayed according to contacts.
Root Cause:
========================
While quering vcard entry from database, proper checks of the order (indexed/alphabetical)
was not there in M Stock code compared to L Stock code.
Change-Id: Ie7990992b4dd22add3526aa0050121e680567bb8
Hemant Gupta [Mon, 7 Mar 2016 08:12:52 +0000 (13:42 +0530)]
PBAPS: Enable contact search with full or part of given string
Enables searching of text in contact name starting with a given
matching string instead of matching the complete string.
Change-Id: I91258391b7b7cb014d55e17e1ed3b92267a2c7da
Hemant Gupta [Mon, 7 Mar 2016 07:16:04 +0000 (12:46 +0530)]
SAP: Fix ANR(s) in SAP server code
Fix ANR in SAP Server code in following scenarios:
- Multiple call to stop in Sapservice leads to ANR, as check was not
present in stop to prevent unregistering BroadcastReceiver if not
already registred.
- Remove redundant call to closeServerSocket from initSocket as this could
lead to ANR when there is simultaneous call to closeService as part of BT
being switched off and call to start SAP as part of BT being turned on when
BT on off sequence is tried repeatedly.
Change-Id: Ia6bc5ca7c9da9ae4a4c12e8207fb9ff6b9159e82
Hemant Gupta [Mon, 7 Mar 2016 07:11:14 +0000 (12:41 +0530)]
SAP: Remove sdp record while BT is being turned off to prevent leak
Remove sdp record created dynamically for SAP server during BT off state.
Without this call, there is leak in sdp layer in stack as sdp record is
never removed, even though the socket is closed.
Also proper checks are added to prevent call to remove sdp record when
adapter is null.
Change-Id: I739cc3115f6cd7fedf9085e8522c96da257e9568
Hemant Gupta [Mon, 7 Mar 2016 05:49:44 +0000 (11:19 +0530)]
SAP: Fix issue of socket listener not getting re-started
Add logic to properly handle ACL_DISCONNECTED to restart socketListener
to handle scenarios where socket listener was not getting started due to
abnormal ACL disconnect.
Change-Id: Iac5ec52f485e692b14bb0065e30a68cae007a49d
Hemant Gupta [Mon, 7 Mar 2016 05:39:41 +0000 (11:09 +0530)]
SAP: Update UI connection and notifications properly
Update connection state to upper layers only when SAP SLC is connected
i.e. status indication is sent to SAP Client.
Also notification to disconnect SAP Server from UI is shown only when SAP
is successfully connected, and not when SapServer object is created.
Change-Id: Iaf40584220b51f6193bed9a54d159cffd32698e9
Hemant Gupta [Mon, 7 Mar 2016 05:14:52 +0000 (10:44 +0530)]
SAP: Handle disconnect request during call ongoing state
Handle disconnect request during call ongoing state properly.
Previously if disconnect was received from SAP client while in
call ongoing state, it was not handled properly, leading to
Server not sending the DISCONNECT response thereby violating
Bluetooth SAP Specification.
Change-Id: I666fab4b4513abfa00df4be5b3a7aab95d5f0331
Hemant Gupta [Fri, 11 Sep 2015 11:34:52 +0000 (17:04 +0530)]
OPP: Update share status when interrupted at remote side.
Use case:
1) Select a file on DUT and send to Remote device through OPP
2) Accept the incoming file on Remote
3) While file transfer is in progress, stop the file transfer on Remote.
4) Again send the same file or different file to the same Remote Device.
Result:
OPP file transfer does not start.
Fix:
Update interrupted outbound content resolver entry when
Transfer is stopped at remote side. Otherwise DUT fails
To push OPP file after earlier OPP file is stopped on
Remote Device.
Change-Id: I9944bdd47ff9e31d0f9f8a157592e407e000e96c
Hemant Gupta [Thu, 10 Mar 2016 15:09:46 +0000 (20:39 +0530)]
OPP: Use long instead of int
Use long instead of int data type in OPP Java code to prevent
overflow of timestamp and filesize during transfer of large files
which caused transfer failures.
Change-Id: I58c9b49f59d47f6f162156eb6594e66731732580
Hemant Gupta [Fri, 11 Mar 2016 07:48:22 +0000 (13:18 +0530)]
MAP: Fix ANR for blocking operations on UI thread
UseCase:
Stability Testing steps followed:
1. Pair and connect with remote phone.
2. Verify successful profile connection.
3. Pair & Connect LE device.
4. Disconnect & Unpair LE device.
5. Reset BT multiple times.
6. Repeat above steps 50 times
Failure:
ANR(s) reported for long running operations perfromed on main thread.
Fix:
- Attach MAPService session handler to looper from a
worker thread to avoid long running tasks handling
for messages posted from UI thread.
- Move AppObserver Account onChange() handling
to worker thread instead of UI thread.
- Avoid running contentobserver for SMS/MMS instance on
main thread looper to fix ANR reported while handling
content changes for SMS and MMS listing. Add NPE checks
hit during stability testing.
Change-Id: Ie146cd284fd191f7c7be7f0c1e7ed4877b36ae76
Hemant Gupta [Fri, 11 Mar 2016 07:04:25 +0000 (12:34 +0530)]
MAP: Track ProfileState, register and unregister of BroadcastReceivers
Use Case:
1. Pair and connect with remote phone.
2. Verify successful profile connection.
3. Pair & Connect LE device.
4. Disconnect & Unpair LE device.
5. Reset BT multiple times.
6. Repeat above steps 50 times
Failure:
BT Crashed, failed to start MAP services after BT reset.
RootCause:
BT Crash for not handling following exceptions:
- java.lang.IllegalArgumentException: Receiver not registered
at: android.app.IntentReceiverLeaked: Service
com.android.bluetooth.map.BluetoothMapService
has leaked IntentReceiver com.android.bluetooth.map.BluetoothMapAppObserver:
Are you missing a call to unregisterReceiver()?
Fix:
- This issue is hit when onStop() for MAPService is triggered without onStart()
being triggered by the time shutdown process gets invoked.
- Track registration and unregistration for BluetoothMapAppObserver BroadcastReceiver
to fix IntentReceiver leaks and also added validation for the AppObserver Data.
Change-Id: Ia1c2160fef369bbff42e8da3ea7d925c483e0a12
Hemant Gupta [Fri, 11 Mar 2016 06:35:24 +0000 (12:05 +0530)]
MAP: CleanUp for SDP record in MAP Service shutdown
Remove SDP record per MAS Instance during MAP Service
shutdown procedure.
Add more relevant debug logging.
Change-Id: I222ad97d719b9a2c45db3ab8526dd3de9c553f3d
Hemant Gupta [Fri, 11 Mar 2016 05:41:33 +0000 (11:11 +0530)]
MAP: GETMessagesLisitng include mandatory field always.
Pre condition:
Atleast one SMS is present in any of the folders
with no subject.
UseCase:
1. Connect MAP connection from MCE to DUT
2. Set folder to Telecom/msg/inbox
3. Execute MessageListing with the required data
Failure:
Mandatory field "subject" is not included for few entries
in messagesListing.
Fix:
For GETMessagesLisitng ensure blank subject string is
set to include this mandatory feild and handle possible
"null" value fetched from database.
Change-Id: Ie29a61c83b22db9008184090a2f5b17d1f34b72b
Ashwini Munigala [Thu, 7 Jan 2016 12:30:58 +0000 (18:00 +0530)]
MAP: Cleanup PendingIntent in cancelUserTimeoutAlarm.
Handle cleanup for timeout Intent and pending Intent
in cancelUserTimeoutAlarm API.
Change-Id: I4f4184785675b2deffa3be8c9dd70b2673020b51
Ashwini Munigala [Tue, 27 Oct 2015 10:54:23 +0000 (16:24 +0530)]
MAP: Handle possible NPE while disconnect map.
Precondition:
Verified with IOT: MecApp in MCE role
UseCase:
1. Connect MAS
2. Register Mas Instance via MNS
3. Disconnect MAS
Failure:
Bluetooth App crash sometimes when disconnect map profile.
Root Cause:
The issue is hit when MAS disconnect is finished before MNS unregister.
In this case NullpointerException is happening because of clearing
BluetoothMapContentObserver already as a part of cleanup.
Fix:
Handle Null pointer exception while last
MAS instance disconnect is handled before MNS
unregistration.
Change-Id: I4e72038a5ddc6c3ac8c515def57cb4f98fe87675
Ashwini Munigala [Thu, 10 Sep 2015 13:02:05 +0000 (18:32 +0530)]
MAP: Add MNS SDP Search during setNotificationRegistration.
Precondition:
Verified with remote MCE device that starts MNS server
only before issuing setNotification Registration to MSE.
Use Case:
1. Discover and Pair with MSE from MCE.
2. Connect to MSE on Mas insance 0.
3. Enable Notification Registration for MAS Instance 0
Failure:
MNS connection happens over RFCOMM
and MAS Instance is connected over L2CAP.
Root Cause:
Current design performs MNS SDP search only at the time
of successful MAS Instance Connect. MNS connect implementation
tries connection over insecure RFCOMM channel based on UUID
when MNS Server record is not available.
Fix:
Add implementation to check and perform MNS SDP search
if this info is not available when MCE requests
setNotificationRegistration. This fix is required to
handle MCE implementation that start MNS Sever and
expose SDP only before sending setNotificationRegistration.
Change-Id: If1e8d33dcac078f04d13b8bacf8e1d1513c119e1
Hemant Gupta [Tue, 22 Dec 2015 13:27:58 +0000 (18:57 +0530)]
MAP: Declare and fetch only 'INTERESTED_MESSAGE_TYPE_CLAUSE' MMS.
Precondition:
Messaging App Settings configured to receive delivery reports for MMS.
Use Case:
Follow standard steps to perform messagesListing type MMS from MCE.
1. Connect to MSE on Mas instance 0.
2. Set Path to root.
3. Set Path to telecom.
4. Set Path to msg.
5. Set Path to inbox.
6. GET messagesListing type MMS.
Failure:
Extra entries like delivery reports that are stored in DB and
which are not user interested types are also included
in MSE messageListing for MMS type.
Fix:
OMA-TS-MMS-ENC MMS Standard defines many types in X-Mms-Message-Type.
Extra entries like delivery reports which is stored in DB are not
required to be shown to user, so these should be filtered, and
only m-send-req (128), m-retrieve-conf (132), m-notification-ind (130)
types should be fetched and shown to user in messageListing response.
This patch removes these unecessary message types from MMS Messaging Listing.
Change-Id: I1cb5d6e58477a32a89693f555a268e0855267b9a
Hemant Gupta [Mon, 21 Sep 2015 15:29:07 +0000 (20:59 +0530)]
MAP: Synchronize notifcationReg reply and MNS connect action.
Use Case:
1. Connect to carkit
2. Disconnect connection with carkit.
3. Reconnect to carkit
Failure:
MNS Failure during Reconnection.
User will in some timing conditions not get notification
of new messages and then turns OFF/ON the carkit.
MAS is connected fine but for MNS car sends BAD REQUEST.
Root Cause:
This isssue is reported only with one particular carkit in MCE role,
where in MNS Connect request issued before acknowleding
the setNotificationReg Request.
Fix:
Synchronize handleRegistration method in handler thread to ensure
setNotificationReg response from MSE is sent before requesting
a MNS Connect to MCE.
Change-Id: I30559c643af7733754fce551b97e31543a0cb160
Satish Kodishala [Fri, 29 Jan 2016 06:39:32 +0000 (12:09 +0530)]
Send error for if VR is initiated during call.
Use case:
Connect to BT headset.
Make a call. Let the call audio be on BT headset.
Initiate voice recognition(VR) from BT headset.
Failure:
AG is not sending error for VR when initiated during call.
Headset might go into bad state if AG don't send error.
Rootcause:
AG is not sending error for VR when initiated during call.
Fix:
When VR is activated during call, send error response to headset.
Change-Id: Ib12d464fc6a6948ddf22250a65a9e5bfeb4a8fb1
Sanket Agarwal [Wed, 23 Mar 2016 19:23:02 +0000 (19:23 +0000)]
Merge "Add Android.mk so that underneath targets can be updated." into nyc-dev
Ajay Panicker [Wed, 9 Mar 2016 03:54:18 +0000 (19:54 -0800)]
Add scan results to scan stats
Ex:
GATT Client Map
Entries: 1
no.nordicsemi.android.mcp
LE scans (started/stopped) : 3 / 3
Scan time in ms (min/max/avg/total): 3050 / 6901 / 4815 / 14447
Total number of results : 338
Last 3 scans :
1970/01/01 08:20:06 - 6901ms 0 results
1970/01/01 08:20:13 - 4496ms 171 results
1970/01/01 08:20:39 - 3050ms 167 results
Bug:
27294154
Change-Id: I32fd6da035f2c37302a105733ac6a9817547b7a3
Sanket Agarwal [Wed, 23 Mar 2016 01:27:47 +0000 (18:27 -0700)]
Add Android.mk so that underneath targets can be updated.
Bug: b/
27744764
Change-Id: I88b2be8b1d362e890a0784115b83c7710e48e51b
Jakub Pawlowski [Tue, 22 Mar 2016 22:32:55 +0000 (15:32 -0700)]
Fix register for notification logic
Bug:
27790582
Change-Id: I118071b907ec16faad401ba6583ca395d08d6d6e
Joseph Pirozzo [Tue, 22 Mar 2016 20:57:43 +0000 (20:57 +0000)]
Merge "PBAP abort operations when disconnected" into nyc-dev
Jakub Pawlowski [Thu, 17 Mar 2016 22:58:19 +0000 (15:58 -0700)]
Use handles to identify GATT attributes (3/4)
Bug:
27778668
Change-Id: Id6ec1229998c9fc2ecd4d0a908405a7148703bec
Jakub Pawlowski [Wed, 2 Mar 2016 00:09:14 +0000 (16:09 -0800)]
Change how services are passed up to the stack
Bug:
27455533
Change-Id: I4c8218fb4c7437ab4597071ad9b580a797e34339
Jakub Pawlowski [Thu, 3 Mar 2016 23:00:46 +0000 (15:00 -0800)]
Remove unused callbacks
Bug:
27455533
Change-Id: I743b8ba7187a397f088ac720f239e368dd84a7a2
Jakub Pawlowski [Fri, 26 Feb 2016 20:01:36 +0000 (12:01 -0800)]
Get whole GATT db, instead of one by one element.
This patch uses new get_gatt_db method instead of current set of
callback to obtain GATT db.t
Bug:
27455533
Change-Id: I52e12253dd850ce8de35297c941638189cbbed1e
Joseph Pirozzo [Mon, 21 Mar 2016 21:23:06 +0000 (14:23 -0700)]
PBAP abort operations when disconnected
Push long running activities relating to the contacts database onto its
own thread such that the main service thread can remain responsive to
new bluetooth requests.
Bug:
27697738
Change-Id: I0202962a49d6a0279b5672152955840dd02bdf31
Sanket Agarwal [Mon, 21 Mar 2016 21:00:30 +0000 (14:00 -0700)]
Forward in iPhone leads to play state being presisted as STOP.
When we press forward in iPhone (via AVRCP pass through or iPhone UI)
while connected over AVRCP we are resetting the state and expecting
AVRCP to give us a new play state when next song resumes. Turns out that
iPhone always keeps it state to be Playing.
The fix is to keep the mRemoteMediaPlayers a replica of what AVRCP says
so that when song resumes (from A2dpSinkService via startAvrcpUpdates)
we can restore the playing state.
Tested on iPhone and regression tested on Nexus 5X.
Bug: b/
27768620
Change-Id: I8caf56072fa5743f28e1680860c161d3cd75b83c
Andre Eisenbach [Mon, 21 Mar 2016 17:15:30 +0000 (10:15 -0700)]
Make sure wakelock is held before releaseing it
Bug:
27748109
Change-Id: I38c8ec640f5def7c53348d2dd96a0a2492ff00cc
Geoff Mendal [Sat, 19 Mar 2016 03:39:57 +0000 (04:39 +0100)]
Import translations. DO NOT MERGE
Change-Id: I6df2f8330fbce97f53729c931fe78e1a77482107
Auto-generated-cl: translation import
Andre Eisenbach [Thu, 17 Mar 2016 23:49:59 +0000 (16:49 -0700)]
Do not delete/re-create wakelock on acquisition/release
Also provide additional status for wakelock acquisition/release errors.
Bug:
27721443
Change-Id: Iac544226fed4a73a50bd954e74d96edd4bed93d2
Joseph Pirozzo [Thu, 17 Mar 2016 22:06:46 +0000 (15:06 -0700)]
Disable Account Authenticator
Conditionally disable account authenticator when pbap client service is
unavailable.
Bug:
27689917
Change-Id: Ia215b40805568e10f44b6c784abbfd9d39586bdf
Joseph Pirozzo [Wed, 9 Mar 2016 23:22:11 +0000 (15:22 -0800)]
Implement PBAP PCE client role service.
Migrate code from frameworks/opt/bluetooth for pbap client to support
pbap as a bluetooth profile.
Bug:
27490041
Change-Id: I7a486af1c58d17ee10348aae044786df670a781e
Sanket Agarwal [Mon, 14 Mar 2016 22:58:01 +0000 (22:58 +0000)]
Merge "HFP is exposed via Telecom ConnectionService." into nyc-dev
Ajay Panicker [Mon, 14 Mar 2016 19:56:20 +0000 (12:56 -0700)]
Print bluetooth state as a string
Bug:
27294154
Change-Id: I992f720d94be1f0762424ebad36ec1b6af58600b
Sanket Agarwal [Wed, 9 Mar 2016 23:29:38 +0000 (15:29 -0800)]
HFP is exposed via Telecom ConnectionService.
Telecom provides a ConnectionService mechanism where in order to make
calls you only need to provide the right phone account (which can be
queried using a predefined scheme).
This change adds a new middleware called ConnectionService which
provides a translation medium from Bluetooth <-> Telecom. Anyone who
wishes to use HFP HF role can then simply use TelecomManager (and
TelecomManager's InCallService) interfaces.
Bug: b/
26757899
Change-Id: I66e47b6ff6330cfd9040a4a6cf4edadac28d63de
Ajay Panicker [Wed, 9 Mar 2016 01:38:25 +0000 (17:38 -0800)]
Add enabled time to dump output
Ex:
Bluetooth Status
enabled: true
state: 12
address: F8:CF:C5:CE:F5:69
name: AOSP on Shamu
time since enabled: 00:00:32.999
Bug:
27294154
Change-Id: Ie65964411e2095434a082f3d988133190c1f2f59
Ajay Panicker [Wed, 2 Mar 2016 03:59:51 +0000 (19:59 -0800)]
Move ScanStats to its own file
ScanStats was growing too large and had many components so
it was moved into its own file.
Bug:
27294154
Change-Id: Ic20c9e74d5d8b074f7e966625fb1bffab6c94f2d
Sanket Agarwal [Wed, 9 Mar 2016 00:02:21 +0000 (16:02 -0800)]
AutoConnect A2DP and HFP for Car Kitt roles.
1. Current auto connect sequence is not enabled for HeadsetClient.
2. On profile init consider A2DP and HFP in Car Kitt roles as
privellaged profiles.
Bug: b/
27551485
Change-Id: I477b34ad1598d0a3ab9563ccd5b3770a4a1e2a57
Sanket Agarwal [Fri, 12 Feb 2016 22:48:51 +0000 (14:48 -0800)]
Audio Focus for A2DP.
When AVRCP is available we provide the following focus management on
SINK role:
a) Both AVRCP CT and AVRCP TG can notify the A2DP SNK about play status
change. A2DP SNK will only play when either CT or TG says play.
b) If AVRCP does not exist or neither of CT or TG have explicitly said
play (pass through or notification) then we simply throw away the data.
TODO:
Implement additional policy where we take the data from the A2DP SRC
irrespective of whether AVRCP exists or not. This should be implemented
as a separate streaming state machine and we should be able to flip the
state machine at run time (via settings app).
Bug: b/
26928143
Change-Id: Ie5fab15ba4cdd5738c59fa646ca0824770489ec5
Wei Wang [Thu, 3 Mar 2016 18:41:48 +0000 (18:41 +0000)]
Merge "Fix a bug where batch scan wasn't stopped correctly." into nyc-dev
Ajay Panicker [Wed, 2 Mar 2016 17:24:38 +0000 (17:24 +0000)]
Merge "Add more statistics to scan logs" into nyc-dev
Bryce Lee [Wed, 2 Mar 2016 03:22:40 +0000 (03:22 +0000)]
DO NOT MERGE ANYWHERE Implement new API for retrieving supported Bluetooth profiles. am:
90b78410c2 -s ours
am:
2c0f222c4e -s ours
* commit '
2c0f222c4e3637dfce4c0a5d9e0ea9ba26e3f6d0':
DO NOT MERGE ANYWHERE Implement new API for retrieving supported Bluetooth profiles.
Bryce Lee [Wed, 2 Mar 2016 03:13:17 +0000 (03:13 +0000)]
DO NOT MERGE ANYWHERE Implement new API for retrieving supported Bluetooth profiles.
am:
90b78410c2 -s ours
* commit '
90b78410c20e3232954891d66bed3352fc5c97e7':
DO NOT MERGE ANYWHERE Implement new API for retrieving supported Bluetooth profiles.
Ajay Panicker [Tue, 1 Mar 2016 21:46:00 +0000 (13:46 -0800)]
Add more statistics to scan logs
Added length of connection time to connections. Also added scan type
(opportunistic/background) to last X scans.
Example of new print:
GATT Client Map
Entries: 2
no.nordicsemi.android.mcp (Registered)
LE scans (started/stopped) : 2 / 2
Scan time in ms (min/max/avg/total): 1604 / 7274 / 4439 / 8878
Last 2 scans :
1970/02/19 21:30:20 - 1604ms
1970/02/19 23:59:00 - 7274ms
Application ID : 6
UUID :
0c452531-a57e-44df-9ac6-
e2b780d2f715
Connections: 1
6: FF:08:11:53:44:A1 10008ms
com.example.apanicke.bletest (Registered)
LE scans (started/stopped) : 2 / 2
Scan time in ms (min/max/avg/total): 2946 / 9996 / 6471 / 12942
Last 2 scans :
1970/02/19 21:30:07 - 2946ms Opp
1970/02/19 21:30:17 - 9996ms Opp
Application ID : 5
UUID :
f25c1bdf-559f-43a6-8348-
40ca92975b33
Connections: 0
Bug:
27294154
Change-Id: I7460fb1568f20a1ce13b01d101517852cf9aec4a
Ajay Panicker [Wed, 2 Mar 2016 02:21:36 +0000 (02:21 +0000)]
Merge "Protect ScanStats from race conditions" into nyc-dev
Wei Wang [Tue, 1 Mar 2016 21:02:07 +0000 (13:02 -0800)]
Fix a bug where batch scan wasn't stopped correctly.
Stop batch was broken as the current logic tried to find
batch client information from regular scan clients when
stopping scans.
Bug:
27209867
Change-Id: I935119950de1d839a6cfce672dfc00f4540f21dc
Ajay Panicker [Mon, 29 Feb 2016 18:37:33 +0000 (10:37 -0800)]
Protect ScanStats from race conditions
Bug:
27294154
Change-Id: Icc0b0a6cfb93fca4a9a2aee49b94c0be1d62527f
Ajay Panicker [Tue, 1 Mar 2016 22:14:56 +0000 (14:14 -0800)]
Fix warnings in packages/apps/Bluetooth
Bug:
27301103
Change-Id: I2f2698a2fb3f7ca7031a803e43a398f59bd32cdb
Adam Lesinski [Tue, 1 Mar 2016 01:14:59 +0000 (17:14 -0800)]
Fix race in reportActivityInfo causing NPE
Bug:
27162966
Change-Id: Id43898440824c1bbb24cef5a23a3f2a4fcde0534
Bryce Lee [Mon, 29 Feb 2016 22:58:49 +0000 (14:58 -0800)]
DO NOT MERGE ANYWHERE Implement new API for retrieving supported Bluetooth profiles.
Bug:
26451648
Change-Id: Ice55556d64208656824d5a6f9b90230d17f0c3bc
Geoff Mendal [Mon, 29 Feb 2016 13:52:16 +0000 (05:52 -0800)]
Import translations. DO NOT MERGE
Change-Id: Ie08c10f0f7b831ab669f237454dd96b96447ebbe
Auto-generated-cl: translation import
Ajay Panicker [Sat, 27 Feb 2016 00:03:10 +0000 (16:03 -0800)]
Fix logic for repeated record scan calls
If recordStartScan or recordStopScan is called multiple times,
there are issues where logged values are incorrect.
Bug:
27294154
Change-Id: Ie049e917ae26fec4c50874ed703e404146c15044
Ajay Panicker [Wed, 24 Feb 2016 23:43:53 +0000 (15:43 -0800)]
Mark background and opportunistic scans in scan statistics
Bug:
27294154
Change-Id: I71d8f388aa83da581958d2169ca9a5eb6088a367
Pavlin Radoslavov [Fri, 26 Feb 2016 04:03:09 +0000 (20:03 -0800)]
Fix the argument processing when dumping Bluetooth state
Apparently, when dump() is invoked via bugreport for
Bluetooth's AdapterServe, the optional arguments contain "-a".
The existing logic for checking the arguments for "--proto"
and return the result in Protobuf format failed to detect that,
and suppressed any output.
Now any unrecognized options are ignored, and the default
(text) output is returned.
[Cherry-pick from AOSP]
Bug:
27293885
Change-Id: I0f0d94507ebf6fed7628d49cd1de2a1b2801e6ad
Pavlin Radoslavov [Wed, 24 Feb 2016 22:53:22 +0000 (14:53 -0800)]
Add a missing null pointer check for AdapterService
Add a missing null pointer check for AdapterService
inside class AdapterServiceBinder when receiving
a Binder request to dump Bluetooth state.
[Cherry-picked from AOSP]
Bug:
27343461
Change-Id: I62e67120f6eb6edb5a93b19a9cca5c09862d6506
Ajay Panicker [Wed, 24 Feb 2016 00:49:54 +0000 (16:49 -0800)]
Add timestamps to last LE scan log
Ex:
no.nordicsemi.android.mcp (Registered)
LE scans (started/stopped) : 5 / 4
Scan time in ms (min/max/avg) : 97 / 1476 / 897
Last 4 scans (timestamp - duration):
1970/02/13 21:10:19 - 1476ms
1970/02/13 21:10:21 - 97ms
1970/02/13 21:10:23 - 929ms
1970/02/13 21:10:25 - 531ms
Application ID : 5
UUID :
f77437a1-5e86-4e2d-8223-
6193a095c7f5
Current scan duration in ms : 1452
Connections: 0
Bug:
27294154
Change-Id: I66ba6b4bc2d45ced7d6414db007394a16a30956e
Ajay Panicker [Fri, 19 Feb 2016 00:43:26 +0000 (16:43 -0800)]
Clean up gatt dump output
Bug:
27294154
Change-Id: Ia411bb3446b657b06a1748daa14628da79d59ca0
Andre Eisenbach [Wed, 24 Feb 2016 19:03:04 +0000 (19:03 +0000)]
Merge "DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)" into mnc-dr-dev am:
e836319052 am:
9e6146ee2f
am:
aa485fdd77 -s ours
* commit '
aa485fdd771ca724c557a5c6c9928d79c3a4959d':
DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)
Andre Eisenbach [Wed, 24 Feb 2016 18:53:50 +0000 (18:53 +0000)]
Merge "DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)" into mnc-dr-dev am:
e836319052
am:
9e6146ee2f
* commit '
9e6146ee2f94c0301d8cc19ca4655e197528829c':
DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)
Andre Eisenbach [Wed, 24 Feb 2016 18:47:16 +0000 (18:47 +0000)]
Merge "DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)" into mnc-dr-dev
am:
e836319052
* commit '
e8363190528d0d95a35ab265ab91c591eb17a7c3':
DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)
Andre Eisenbach [Wed, 24 Feb 2016 18:35:37 +0000 (18:35 +0000)]
Merge "DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)" into mnc-dr-dev
Geoff Mendal [Wed, 24 Feb 2016 13:59:51 +0000 (05:59 -0800)]
Import translations. DO NOT MERGE
Change-Id: I11299a617378b0822d73cd5ac94c6556eb62c35e
Auto-generated-cl: translation import
Aurimas Liutikas [Tue, 23 Feb 2016 00:39:38 +0000 (16:39 -0800)]
Fix warnings in packages/apps/Bluetooth
Cherry-pick of https://android-review.googlesource.com/#/c/204513/
Bug:
27301103
Change-Id: I46e0094d8e58c4d3a3ed0401600e7176fb1417c6
Liejun Tao [Tue, 23 Feb 2016 22:07:47 +0000 (22:07 +0000)]
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation am:
1a1169dcb2 -s ours am:
68d4713d8a
am:
65284fb3d9 -s ours
* commit '
65284fb3d9310f17ba6dff5c0cb07ead318c90d2':
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation
Liejun Tao [Tue, 23 Feb 2016 21:59:48 +0000 (21:59 +0000)]
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation am:
1a1169dcb2 -s ours
am:
68d4713d8a
* commit '
68d4713d8aa4bf743939b195e2658ae89703ffe7':
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation
Liejun Tao [Tue, 23 Feb 2016 21:53:10 +0000 (21:53 +0000)]
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation
am:
1a1169dcb2 -s ours
* commit '
1a1169dcb2627c9667153232a356984e81f24e82':
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation
Liejun Tao [Fri, 18 Dec 2015 20:59:01 +0000 (14:59 -0600)]
DO NOT MERGE Enhance AVRCP Absolute Volume control implementation
1. Remember the current local volume level, current remote volume level.
When user adjusts the volume, compare the returned remote volume
level with desired volume level, if they don't match, do retry.
2.Learn and remember the volume mapping between phone volume level and
remote volume level as the user adjusts volume. When user adjusts to one
remembered volume level, use the mapping directly. Otherwise calculate
the remote volume level and try with method described in step one.
3. Blacklist device if remote device does not tell its initial volume.
4. Define optional threshold for initial volume level to avoid headset
being too loud upon re-connection.
Signed-off-by: Liejun Tao <baibai@motorola.com>
Change-Id: I78112f5f401666f5a680561473a5c7f914071fbe
Andre Eisenbach [Thu, 14 Jan 2016 10:06:23 +0000 (02:06 -0800)]
DO NOT MERGE Read Bluetooth interop database entries from settings (2/2)
Interop database entries are stored in the system settings entry
"BluetoothInteropDatabase". The format is a list of entries separated by
";". An entry consists of a BDA fragment, followed by a comma and an
integer representing a feature from interop.h.
Example:
To disable LE secure connections for devices starting with BDA 11:22:33,
use "11:22:33,0".
Bug:
26548845
Change-Id: I5903930178b70d1eb52d64b1c6051ce8ee346da4
Geoff Mendal [Mon, 22 Feb 2016 13:20:01 +0000 (05:20 -0800)]
Import translations. DO NOT MERGE
Change-Id: I8691388fe0ac0923b347e91e3c0e865364b44d3c
Auto-generated-cl: translation import
Erik Kline [Wed, 17 Feb 2016 13:52:02 +0000 (22:52 +0900)]
Use IpManager when feeling Pan-tastic
Convert Bluetooth PAN from dhcpcd to IpManager.
Bug:
26991160
Change-Id: Iec8a48294702a8d214f43bea5ef9a041fa52d20f
Andre Eisenbach [Thu, 14 Jan 2016 10:06:23 +0000 (02:06 -0800)]
Read Bluetooth interop database entries from settings (2/2)
Interop database entries are stored in the system settings entry
"BluetoothInteropDatabase". The format is a list of entries separated by
";". An entry consists of a BDA fragment, followed by a comma and an
integer representing a feature from interop.h.
Example:
To disable LE secure connections for devices starting with BDA 11:22:33,
use "11:22:33,0".
Bug:
26548845
Change-Id: I5903930178b70d1eb52d64b1c6051ce8ee346da4
(cherry picked from commit
8ecd371d3b90878c211785bae4612d24e06abfca)
Pavlin Radoslavov [Thu, 18 Feb 2016 03:01:42 +0000 (19:01 -0800)]
Output the Protobuf result in Base64 string
Outputing in binary format does not work, because
the reader assumes the output is a string.
Change-Id: If24797264e82c649c21f9b984f04ec70adbcec94
Ajay Panicker [Tue, 16 Feb 2016 18:38:53 +0000 (10:38 -0800)]
Add Java Protobuf dump and ScanEvent Protobuf
Add Protobuf dumping for the Java layer. Also add ScanEvent Protobuf
to already existing scan event logging.
Change-Id: Ib05973c8d98df3bead84b22b3773c42effb25c87
Deepak A Metri [Fri, 9 Oct 2015 10:42:21 +0000 (12:42 +0200)]
Improve BT OPP throughput
Progress Bar updation during OPP takes around 40ms for each update.
This causes a significant delay in OPP file transfer, which eventually
will decrease the throughput.
To improve the throughput, invoke the progressBar updation only if there
is a change in the percentage.
Change-Id: I64a0b47093698959026d2b97f296c709a7d92703
Signed-off-by: Deepak A Metri <deepak.a.metri@intel.com>
Signed-off-by: Cedric Bondier <cedric.bondier@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
Arnav Gupta [Wed, 10 Feb 2016 00:27:49 +0000 (05:57 +0530)]
HFP: Do not return NULL when the HDP interface is unavailable
We're not supposed to return a NULL from a a function returning an int
value. And indeed the calling Java code does not have a NPE check either.
If an HDP interface is not avaialable, send -1 which the Java code
correctly assumes as a failure to register the health app.
Change-Id: I5ac7dc6f9acc9fefae8d1d2233453448c3ba79bc
Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
jun.x.wang [Thu, 14 Aug 2014 05:36:59 +0000 (13:36 +0800)]
Fix NPE crash while removeBatch
When unpairing two devices, the BluetoothOppShareInfo
in BluetoothOppBatch may be null during transfer.
Change-Id: I7b4fbd0f291250deebdeaea4bf2d2f540fe233dc
Ajay Panicker [Mon, 8 Feb 2016 23:12:49 +0000 (15:12 -0800)]
dumpNative has garbage in args
|args| sometimes has garbage in it which can cause segfaults later on.
Change-Id: Ie754d8066dc591b4d64e922b1ffe93fe131bc68d
Andre Eisenbach [Tue, 9 Feb 2016 17:17:49 +0000 (09:17 -0800)]
Fix typo in Bluetooth MAP access string
Bug:
26970075
Change-Id: I5d3ffbe3391389abafcfafbe924f390116954d18
Ajay Panicker [Fri, 8 Jan 2016 00:05:11 +0000 (16:05 -0800)]
Null terminate MAP instance information
Bug:
26437927
Change-Id: I673de7f7c68b9a02b234bb99c6f89c7fc36f90c9
Akshay Thakker [Sun, 14 Feb 2016 22:50:19 +0000 (22:50 +0000)]
Merge "Fix memory leak in Bluetooth AVRCP JNI" into mnc-dr-dev am:
e225df4abf am:
eeb99e6b70
am:
6554484313
* commit '
6554484313ae2703d0e57b67cedc67e48061740a':
Fix memory leak in Bluetooth AVRCP JNI