OSDN Git Service
Calvin On [Wed, 20 Apr 2016 02:17:50 +0000 (19:17 -0700)]
Synchronize access to ServiceDeclaration fields.
ServiceDeclaration objects are accessed by both the binder thread
(addService, addCharacteristic, etc) and the GattService callback thread
(onServiceAdded, etc) and so must be made thread-safe.
Bug:
28201656
Change-Id: Ic2e4b5c21dafceb62f33738b781f908f502f60b3
Marie Janssen [Tue, 19 Apr 2016 14:12:42 +0000 (07:12 -0700)]
AVRCP: Use MediaController
RemoteController has been depreciated since M.
MediaController lets us track a lot more things and update data as the
state of audio changes.
This also should fix some bugs related to metadata display not happening
on startup / track change / app change.
Bug:
27178384
Bug:
27745277
Bug:
26837775
Bug:
27534794
Bug:
27153373
Change-Id: I246d9641a5e921ed4434495f5c2dfac67d568952
Seven Shen [Wed, 6 Apr 2016 19:25:17 +0000 (12:25 -0700)]
"DO NOT MERGE" Add write SMS protection
Bug:
25138326
Change-Id: I9f418370b8725d49e3734406b6f435107bcff021
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: If4a8855faf362d7f6de509d7ddc7197d1ac75cee
Ajay Panicker [Tue, 19 Apr 2016 20:48:43 +0000 (20:48 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67 am:
5eee2cd am:
48115bb -s ours am:
e2dca1a am:
63bcffd am:
c522820
am:
8a05cda -s ours
* commit '
8a05cdab974dc2c3eef692a721dcf8c2c892c92d':
"DO NOT MERGE" Add write SMS protection
Change-Id: Ida61f3ba3d91a67185cb06411251dea62d8eedc4
Ajay Panicker [Tue, 19 Apr 2016 20:45:25 +0000 (20:45 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67 am:
5eee2cd am:
48115bb -s ours am:
e2dca1a am:
63bcffd
am:
c522820
* commit '
c5228202951c7bc4e52efa5fc37aded7a3447347':
"DO NOT MERGE" Add write SMS protection
Change-Id: I040910aa52e542acad0fffda4ae4ff5dad101008
Ajay Panicker [Tue, 19 Apr 2016 20:41:25 +0000 (20:41 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67 am:
5eee2cd am:
48115bb -s ours am:
e2dca1a
am:
63bcffd
* commit '
63bcffd3da5054da678f927e75c60d71cc45df47':
"DO NOT MERGE" Add write SMS protection
Change-Id: Ia5e0c102295f430fc4ec1d4230b70016d8e4c33e
Seven Shen [Tue, 19 Apr 2016 20:41:24 +0000 (20:41 +0000)]
"DO NOT MERGE" Add write SMS protection am:
64745b1 am:
9accc36 am:
6c32c81
am:
b90c267 -s ours
* commit '
b90c26765772a8cf5cf20c86a89dc24490cb1ccd':
"DO NOT MERGE" Add write SMS protection
Change-Id: I7c3b38bd4ca8c28f20fc89ac936da6e2f0d80480
Ajay Panicker [Tue, 19 Apr 2016 20:38:06 +0000 (20:38 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67 am:
5eee2cd am:
48115bb -s ours
am:
e2dca1a
* commit '
e2dca1a7cf3fa6b4d1d8c5769f5d0e052726c699':
"DO NOT MERGE" Add write SMS protection
Change-Id: I79c8f9bc90ba6ad16b854d68c74b075188a6caa0
Seven Shen [Tue, 19 Apr 2016 20:33:41 +0000 (20:33 +0000)]
"DO NOT MERGE" Add write SMS protection am:
64745b1 am:
9accc36
am:
6c32c81
* commit '
6c32c815bfbe1058791c6dbee0a98c6b30792963':
"DO NOT MERGE" Add write SMS protection
Change-Id: I4cca8e8ac4b4659ce7dc28264ccd39a53d68098c
Ajay Panicker [Tue, 19 Apr 2016 20:33:14 +0000 (20:33 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67 am:
5eee2cd
am:
48115bb -s ours
* commit '
48115bb85ee7c7692b9c70afaa8b0d6a32c24a95':
"DO NOT MERGE" Add write SMS protection
Change-Id: I39546ac3a880b12ddeb33c383184967e90209349
Seven Shen [Tue, 19 Apr 2016 20:30:39 +0000 (20:30 +0000)]
"DO NOT MERGE" Add write SMS protection am:
64745b1
am:
9accc36
* commit '
9accc36b1a6a9779d31ea6edcc861a69167d37e5':
"DO NOT MERGE" Add write SMS protection
Change-Id: Id5bc27d73ed66c9f12ecf94ec2ef1dc727a6b5c4
Ajay Panicker [Tue, 19 Apr 2016 20:30:02 +0000 (20:30 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours am:
daa8d67
am:
5eee2cd
* commit '
5eee2cd8453f5990d1202d010df01eca724e1010':
"DO NOT MERGE" Add write SMS protection
Change-Id: Id83f27fd2d8b2431cea51c8eb5a4ca152a872647
Ajay Panicker [Tue, 19 Apr 2016 20:26:39 +0000 (20:26 +0000)]
"DO NOT MERGE" Add write SMS protection am:
fd7a794 -s ours
am:
daa8d67
* commit '
daa8d67fe2e26eb9d5282006eb7ec17306b7e277':
"DO NOT MERGE" Add write SMS protection
Change-Id: Ia8f55d6ba4a5d008b107673d8830208c3eefd30a
Seven Shen [Tue, 19 Apr 2016 20:23:31 +0000 (20:23 +0000)]
"DO NOT MERGE" Add write SMS protection
am:
64745b1
* commit '
64745b114948ea0c774f74af5721b6283087247d':
"DO NOT MERGE" Add write SMS protection
Change-Id: Idb905753e4e4d711b11b7d5274e622df4e9c4251
Ajay Panicker [Tue, 19 Apr 2016 20:23:20 +0000 (20:23 +0000)]
"DO NOT MERGE" Add write SMS protection
am:
fd7a794 -s ours
* commit '
fd7a794fc57e06606244b9fc1673c9c549cce5c4':
"DO NOT MERGE" Add write SMS protection
Change-Id: I3dcb78c9213b10ad354c72ab756af773c04213c7
Marie Janssen [Fri, 15 Apr 2016 21:57:04 +0000 (14:57 -0700)]
AVRCP: Don't assume 0:00 on metadata change
When changing between apps, and changing between songs, the Media
framework sends us the position data before the metadata, so
setting it to 0 wipes out our position.
Fixes:
27745277
Change-Id: I2d309df424c8889928da9601b367d488bba89919
Adam Lesinski [Mon, 18 Apr 2016 23:27:08 +0000 (23:27 +0000)]
Merge "Implement new async response method for controller activity info" into nyc-dev
Sanket Agarwal [Thu, 7 Apr 2016 20:48:40 +0000 (13:48 -0700)]
Handle all kinds of focuses and make fault tolerant to phone calls.
Audio Focus Loss Transient: We stop music and wait for focus gain.
Audio Focus Loss Transient May Duck: We lower the volume (via Gain).
Sometimes phones do not resume even after sending play after the phone
call. This is possible if there is a race condition of when A2dp thinks
it got focus back vs phone actually releasing the call. To avoid this we
add retry logic to try playing again. This also avoids janky situations
when playing music will not initiate at first.
Bug: b/
28003743
Bug: b/
28065071
Change-Id: I1d31156d134d98959ff3044c98206c60515d7e5a
Baligh Uddin [Fri, 15 Apr 2016 22:35:07 +0000 (22:35 +0000)]
Merge "Import translations. DO NOT MERGE" into nyc-dev
Sanket Agarwal [Fri, 15 Apr 2016 20:13:48 +0000 (20:13 +0000)]
Merge "Rename btif audio_focus_state -> set_audio_focus_state." am:
93b6179 am:
c481822
am:
ef9aa9f
* commit '
ef9aa9f2514bafcaee96901dac2baffdf149e848':
Rename btif audio_focus_state -> set_audio_focus_state.
Change-Id: Ib250b9355a44eae5e6d2fbf575c2bd9c04ffbcd4
(cherry picked from commit
c7056ffc0c16fb35fda2cfc5adb51a736c9bb56a)
Adam Lesinski [Mon, 11 Apr 2016 21:50:36 +0000 (14:50 -0700)]
Implement new async response method for controller activity info
Bug:
26842468
Change-Id: I35e6bd6996d408aa2c8ccda754d5b2f05bcb8056
Pavlin Radoslavov [Fri, 15 Apr 2016 00:49:45 +0000 (17:49 -0700)]
Add a missing null-pointer check in HeadsetService.stop()
Bug:
27678483
Change-Id: I288b905d6b3f827a94365d512305cd29e186f3d4
Baligh Uddin [Fri, 15 Apr 2016 07:55:11 +0000 (00:55 -0700)]
Import translations. DO NOT MERGE
Change-Id: I5d2ac0ced0d0453a000307a544259d8e033e4914
Auto-generated-cl: translation import
Calvin On [Tue, 12 Apr 2016 22:43:59 +0000 (15:43 -0700)]
Fix PEERS_MAC_ADDRESS permission for Ble Scanning.
This changes the location permissions check to only throw a SecurityException
if *both* location and peers mac address permissions are missing.
Bug:
27837639
Change-Id: I5e10c8f0564d1f7edab23ad22dbd5aa5fdcbbf76
Bill Yi [Sat, 9 Apr 2016 13:51:28 +0000 (06:51 -0700)]
Import translations. DO NOT MERGE
Change-Id: I33cceec5deb5b2f221c143167397a3ee0c60c332
Auto-generated-cl: translation import
Seven Shen [Wed, 6 Apr 2016 19:25:17 +0000 (12:25 -0700)]
"DO NOT MERGE" Add write SMS protection
Bug:
25138326
Change-Id: I9f418370b8725d49e3734406b6f435107bcff021
Sanket Agarwal [Thu, 7 Apr 2016 18:56:26 +0000 (11:56 -0700)]
Bluetooth streaming should wait for AVRCP to start.
Currently we are waiting for A2DP to come up before we can start
streaming. This is not ideal since unless AVRCP comes up we cannot show
the UI reliably. That said, for compatibility with devices only having
A2DP we will need to modify this code. For now the A2DP SNK is only
supposed to work with AVRCP TG implementation on the remote.
Bug: b/
27744764
Change-Id: I972cf94f5b276d9b0e08315175ae605ccfe6a423
Marie Janssen [Tue, 5 Apr 2016 17:49:19 +0000 (10:49 -0700)]
Enable logging for AVRCP Metadata changes
We're seeing a lot of AVRCP metadata issues, so enable some logging of
metadata in hopes of collecting more information.
Bug:
26837775
Bug:
27153373
Bug:
27178384
Bug:
27745277
Change-Id: Ie425ad2a5e090aa4363dab6b853479eeda35cef6
Ajay Panicker [Wed, 6 Apr 2016 22:55:15 +0000 (15:55 -0700)]
"DO NOT MERGE" Add write SMS protection
Bug:
25138326
Change-Id: I494db57e9291fac108e2abae85db367992ad81a1
Bill Yi [Wed, 6 Apr 2016 17:07:53 +0000 (17:07 +0000)]
Merge "Import translations. DO NOT MERGE" into nyc-dev
Bill Yi [Wed, 6 Apr 2016 13:38:59 +0000 (06:38 -0700)]
Import translations. DO NOT MERGE
Change-Id: I53e5b0bb59d7d67e82fc367bf8493c22deb594bb
Auto-generated-cl: translation import
Ajay Panicker [Tue, 5 Apr 2016 00:31:19 +0000 (17:31 -0700)]
Fix name collected for scan initiator
Private information was being collected for the scan statistics.
Bug:
27996307
Change-Id: Idab438967f80f86f4f92e7f03cc5787f8d54e8a1
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