| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use case:
1. Pair remote with DUT.
2. Select any image and try share.
3. select bluetooth to be sent
4. Turn off bt quickly after clicking selected remote device.
Failure:
Bt can not be turned off and then bt turns on again.
Root Cause:
Some rare cases even after turn off BT connection thread is
initiating socket coonection.
Fix:
Check with interrupted flag connection thread before creating
Bluetooth socket.
CRs-Fixed: 1084325
Change-Id: I40667a6e8c5a2cb047a1fd081d676e654e3ee858
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disable NON-AOSP bluetooth data related features from
resource configuration values
If disable_non_aosp_bt_features is set as true in config.xml
following NON-AOSP features would be disabled
OPP-1.2
MAP-EMAIL
PBAP-1.2
PBAP-SIM
disable_non_aosp_bt_features is set to false by default. It can be
configured as per need.
Change-Id: I4c5924bd7c94407342c6da83869eaa8da905605d
CRs-Fixed: 1064006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Added support for Multi A2dp connections
in Bluetooth application.
2. All connection transition states for
2nd HS onwards is handled in new state-
MultiConnectionPending.
3. The changes are done to handle proper
state transition for all connected HS.
Change-Id: Ib7d16a4a647ba5d7e38a8c2edc4581474725ab6c
Conflicts:
src/com/android/bluetooth/avrcp/Avrcp.java
src/com/android/bluetooth/btservice/AdapterService.java
Bluetooth: Add support for multi Streaming.
Add changes to support dual streaming for
A2dp
Change-Id: I84882d850ffd374bb998ef5e942464e2972d64bf
Bluetooth: A2dp MultiCast/ Soft Hands-off.
- Allow new profile connection on same ACL
- Reset scan mode to last set scan mode before
starting multicast
- Check for mTargetDevice before moving to
disconnected state.
- Remove playing device from list on disconnect
Change-Id: I24fa041783abba1584730930336b65a9586cb778
Bluetooth: Send Track change notification
- Send track change notification to both
devices.
- Check for absolute volume support in both connected
HS before updating audio
- Reject 2nd incoming connection, when connecting event
is received in pending state and already processing
incoming connection.
Change-Id: Ia5271febddcbf69c205fbebc7a11964a1ef0719c
Dual A2DP: Update playstate on suspend
- playstate update for suspend case to reflect the
right state to remote device.
Change-Id: If11acb9126ac8f424c622d786d4eaf3f155ca0c6
A2DP/AG: Increase A2DP/AG application level connection timeout
- Application level connection timeout should be higher
than lower level possible timeout to avoid race conditions.
Stack level timeout for user response timeout is 30 seconds,
hence during such scenarios stack will be still not timed out
but application starts cleanup.
Change-Id: I606e81fcea2e02c0cf4e5e47dba216bcbef42db4
Bluetooth: Update AudioManager for ABS volume
- Update audiomanager for abs volume after RC features
is received.
- Update audiomanager when any of connected HS is
disconnected.
Change-Id: Ie2479cf538a830ba47c5a6418199caef2a81e78a
Conflicts:
src/com/android/bluetooth/avrcp/Avrcp.java
Bluetooth: Block new ACL connections.
- During active multicast, no new ACL
should be created.
- Do not proceed to new A2dp connection
during active multicast.
Change-Id: I0b9f6e7648976095ece8de4a41fbe10634c07131
Dual A2DP: Update currentDevice for unexpected disconnection
- While in multipending state, currentDevice should be updated
when disconnection is initiated for one device but happens
for other device which is currentDevice.
- Increase the connection timeout to 38 seconds to accomodate
LMP response timeout and page timeout.
CRs-Fixed: 835641
Change-Id: I54d439e458a212d6acf3031e5d1e89706071cfa9
Dual A2DP: Do not initiate bonding while multicast
- Bonding has to be disabled while active multicast is on.
This has to be explicitly taken care for avoiding the
bonding and connection from available devices.
Change-Id: Ic82686dd100201ca6171fbc3ab14c0b9690a850c
CRs-Fixed: 837415
Misc A2dp Multicast Changes for proper Avrcp handling
- Send play status update only if Music streaming is
in progress.
- Send play status update based on device specific stored
state.
- Remove multi player implementation as it causes mismatch
in stored playback state and actual player state.
- Logging changes for scan state update.
CRs-Fixed: 839396
Change-Id: I539d949c32cbe1871f3c737bdd0e092798f729c1
Proper assignment of track number and play position
- Initialize track number with value as -1 but on
receiving meta update set it to 0 if media player
in use is not capable of setting it to valid value.
This change will help supporting 3rd party media
player apps which are not capable of updating
mentioned fields properly.
- Explicitly send play-position as 0 in getPlayStatus
response when position is not initialized as specification
suggests that -1 is not a valid value for this command
response. As per specification -1 will still be sent
as the play position in interim response of Play Postion
Changed notification.
CRs-Fixed: 836672
Change-Id: I3e10ec4e49df095485fa630b95bf829e755686f1
Misc Avrcp handling for Multi connection scenarios
- Handle avrcp TG connection state change update
from stack and add remove respective devices to
Avrcp connected device list.
- Proper clean-up of device entries in A2dp and
Handsfree state-machine.
- Sending playback state changed as Paused when
playback switches from that device to another.
- Reject pending notifications when addressed
player changes even to non 1.5 capable player.
CRs-Fixed: 843335
Change-Id: Iafbeb17907e8bc5409ee996b966824fd4ba87417
Conflicts:
src/com/android/bluetooth/avrcp/Avrcp.java
Proper handling of Player settings attribute change
- Proper handling of Player setting attribute change
- Logging enhancement in player setting attrbute path.
- Formatting changes.
CRs-Fixed: 845462
Change-Id: I06067a091a21082b2668c31762f078da557841ee
Conflicts:
src/com/android/bluetooth/avrcp/Avrcp.java
Dual A2DP: Update the connection state after timeout in Connected state
When initiating incoming/outgoing connections, there is a possiblity
that CONNECT_TIMEOUT for outgoing happens after successfully
connecting to two other devices and this will be received in
Connected state. We need to update the connection state and
clear the target device.
Change-Id: I0a1ad01f85b6f45b9276c6da9ce0e6b34f75990e
Proper handling of Setting Addressed Player
Proper handling of Setting Addressed Player ID.
Make addressed Player ID as device independent.
As otherwise device wont update the same after
reconnection if any change has happened in between.
CRs-Fixed: 855172
Change-Id: I23a4c3e9670fcd6538e0e3f5ef8c0be116a25de4
Change Play Position and Play status handling
Change Play Position and Play status handling
in a way that play positions are not kept device
speific anymore as that belongs to change in
player state, not device state.
Play state changing to playing is sent only when
device is identified as active one in hand-off mode.
CRs-Fixed: 856063
Conflicts:
src/com/android/bluetooth/a2dp/A2dpStateMachine.java
Change-Id: Ia7e859c28a1826ac2686c432690030741a3c67bc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OPP: Replace deprecated api with new API
Remove unnecessary variable and avoid using
deprecated api [Internal].
Change-Id: Ice9314d599d0c0f4d7cc0e1ed70c7e87fa41e937
Bluetooth: Extra debug prints to track ANR
Add extra logs in PBAP and OPP profiles to track
ANR during SNS test.
Change-Id: If676ca59134105a423e42c23f767fbe1c7524e44
OPP: Show debug msg when receive incoming request
In automation, many times UIAutomator is not able
to accept the files saying PoP menu has not come.
So to confirm added debug msg (Internal).
Change-Id: If55765891e3465bf7f1715d7c02c4a7e39db05bd
Change-Id: Ib315359f29b7f27b2dd6dccbd07946f2f97a978c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use Case:
1. Pair remote with DUT.
2. From gallery send a file to remote
3. Turn off BT
4. Check the file transfer should fail
Failure:
BT crash seen when we turn off BT during file transfer.
Root Cause:
In Some conditions Bt Socket instance is remains null
because of turn off BT.
Fix:
Before closing connection check BT Socket instance
Value to avoid NPE.
Change-Id: Idcd90c31a179247055a155678d11d8e76ec90aca
|
|
|
|
|
|
|
|
|
|
|
| |
Initiate rfcomm connection directly when sdp fails to start
for Obex over l2cap. This would prevent usecases when in CTS
test multiple user are creted, and sdp is initiated by profile user
which is different from active user, resulting in unecessary wait
for 10 seconds for SDP, leading to test case failure.
Change-Id: I2d307b48a9a835e3cec17dc5ca66ddda9c13446e
CRs-Fixed: 961190
|
|
|
|
|
|
| |
Add change to support OPP 1.2 which uses obex over l2cap.
Change-Id: I8cc4697658cae6decdba382c77f62c49c29fbf02
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VERBOSE level logging for each profile can be enabled runtime from
adb shell using following command and turn off/on BT:
setprop log.tag.LOG_TAG VERBOSE -> VERBOSE level Logging (or)
setprop log.tag.LOG_TAG DEBUG -> DEBUG level logging
where 'LOG_TAG' to be replaced with below for corresponding profile:
BluetoothHidHost - HID Host
BluetoothHidDev - HID Device
BluetoothMap - MAP Server
BluetoothOpp - OPP Profile
BluteoothPan - PAN Profile
BluetoothPbap - PBAP Server
BluetoothSap - SAP Server
CRs-fixed: 608230, 604523
Change-Id: I37b73f2f596a96098c4f6a1ec5097dff36af11f3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use Case:
1) Pair with BT and dongle and start receiving file
2) Reset BT dongle abruptly such that ACL disconnects and file transfer fails.
Failure:
File not sent error is displayed after long time.
Fix:
Process ACL_DISCONNECT message in OPP module to clean up
the transfer related data as soon as ACL is disconnected.
This removes the delay we observe in displaying File not received
message when Remote device's Battery is abbruptly taken out
or remote disconnects the ACL when authorization request is in
pending state in DUT.
CRs-fixed: 520411
Change-Id: Ie6af1ab8c354f8e21eb56c61e5518b83b621c56d
|
|
|
|
|
|
|
|
|
| |
In some rare conditions handler thread instance going to be null when
ends NFC transfer at server side so put HandlerThread.interrupt()
block in Synchronization to (prevent concurrent access) avoid force
close.
Change-Id: I2db8fbb0e9debdfc6f281c6a252f0fe7d30dbb50
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each profile had its own implementation of ObexTransport.
These implementations were implemented very similar, and
could easily be merged into a common implementation.
Additionally it will make it easier to adopt the transport
to support L2CAP.
The SDP functionality is implemented in a way that is scalable,
hence adding new record types is easy.
Intents are currently used to distribute the SDP search results,
as we have observed that the new client side profiles have been
located outside the Bluetooth package.
We strongly recommend to keep all bluetooth profiles within the
Bluetooth package, to acoid the need for exposing all bluetooth
interfaces through the Android framework. For instance this new
SDP create API is internal to Bluetooth, hence cannot be used by
the external profiles - hence they cannot use OBEX over L2CAP.
The SDP search currently supports:
- MAP both sides
- OPP server (only the server needs an SDP record)
- PBAP server (only the server needs SDP record)
The SDP create record currently supports:
- MAP both sides
- OPP server
- PBAP server
The new l2cap sockets introduces a new wrapper class for a rfcomm
and an l2cap socket.
The wrapper design:
- Creates two accept threads running while bluetooth is
turned on.
- When a connection is accepted the owner is asked wether or not
to accept the connection if rejected, the connection will be
rejected at obex level, else it will be accepted and the state
is changed to busy.
- Any further connections will be rejected at Obex level, until
the state is changed back to idle.
Notes tor executing the test cases:
Test OBEX using local pipes(no BT) or two bluetooth enabled
devices.
Test SDP using two Bluetooth enabled devices
Start server testcase first on one device, then start
the matching client test on the other device.
You cannot run all tests in one go, as they need to run
on multiple devices.
Edit the test sequesce to add/remove/modify the sequence
of OBEX operations to perform.
Use the new SDP record create interface.
Change-Id: I3941793f9843abf4afa5ffbee40d1d01c118b29b
Signed-off-by: Casper Bonde <c.bonde@samsung.com>
|
|
|
|
|
|
|
| |
Also correct a confirm status change check in updateShare.
Bug: 17770561, 18343032
Change-Id: I8e7d10e73604c0bf1c88801a1caef7d579fbd1eb
|
|
|
|
|
|
|
|
|
|
| |
To support Android Beam receiving information about
the number of files in a OPP transfer, add the Count
OBEX header. Also add a new intent to tell the handover
requested that a transfer has started, including the
count (if any).
Change-Id: Ib5e0e8dbc6c2e3259e0f732a507557c3688e168c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change BT OPP to open the InputStreams of files to share in the
BluetoothOppLauncherActivity (or BluetoothOppHandoverReceiver
for NFC shares), while the process has grantUriPermission() on
the URI's to share.
InputStreams are saved inside the existing BluetoothOppSendFileInfo
objects, which no longer include the mDestination field because
this isn't known at the time the SendFileInfo object is now created
(before the user has chosen the destination BT device). These
objects are stored in a static ConcurrentHashMap in BluetoothOppUtility
and are removed when the file is closed (on success or failure).
If the user tries to share thousands of files in one batch, we may
not be able to open InputStreams for all of the files in the batch.
In this case, the open should fail gracefully.
Bug: 6808783
Change-Id: I3f3f86d2dc1a78a837aeb6a888f90b26434ba499
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fix addresses numerous BT on/off issues found from the CTS test.
Fixed fD/pipe leak in various state machine Looper objects by calling quit() function.
Fixed cursor leak in AtPhonebook.
Change Pbap to stop the RFCOMM listener on the STATE_TURNING_OFF instead of STATE_OFF.
Removed several cleanup() methods causing NPE.
Reduced RFCOMM listener timeout from 3 seconds to 300ms between retry.
bug 6834336
Change-Id: I52423343d8f52f65294af0143f373871a9874d77
|
|
|
|
|
|
| |
exception in OPP when remote does not accept incoming request.
Change-Id: Ibb43a26ee0ac62967518468d243880a0af987ba0
|
|
|
|
|
|
| |
of object references (context, handlers, and collection objects ) during service cleanup.Memory profiling changes : Updated the Bluetooth code to handle cleaning up of object references (context, handlers, and collection objects ) during service cleanup.
Change-Id: I2b0235f71c1feaf32215b2aaf89a2e06d8fa7d73
|
|
|
|
| |
Change-Id: Ie43a26874bd5f0c00d69c2ce02430f4a16da327a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added a whitelist permission, to ensure only system
services (such as NFC) can whitelist MAC addresses.
- Added HANDOVER_STATUS permission, to ensure handover
transfer status can only be received by eligible services
(such as NFC).
- Added new confirmation type HANDOVER_CONFIRMED; this indicates
the transfer was initiated by a handover, and doesn't need to be
confirmed. This type is also reused to send broadcasts
to the NFC service, so the NFC service can show notifications
and deal with the received data.
- Added 15 second timeout to whitelist.
- Modify notication code to not show any notifications for handover
transfers; instead, send broadcasts to indicate handover status.
- Modify "transfer complete" code to sendbroasts to indicate handover
status.
Change-Id: I00c08e09eaf44f0bd4bd837cb6b0c37b802742bc
|
|
|
|
|
|
|
|
|
| |
When the pin or link key missing case occurs,
we need to retry the socket connection. Use a timeout
of 1.5 secs instead of 2.5 secs because the ACL inactivity
timer is 2 secs.
Change-Id: I3d4c096bd823e3204e91040bea608e44471dd4ce
|
|
|
|
|
|
|
| |
In BluetoothOppTransfer where we check mRetry and e.getMessage()
if mRetry is false and e is not "Invalid exchange", the transfer is stuck
Change-Id: Ie7a4da215c9e74e167db9fa29c6e113a7a7a2c77
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the devices were paired before, but unpaired on the
remote end, it will return an error (when sending a file)for the auth
request for the socket connection. Link keys will get exchanged
but we need to retry the socket connection. There is no good way to
inform this socket asking it to retry apart from
a delayed retry. The socket is opened at the kernel level
but the link key retrys happen at the Bluez userspace level.
Note: This is a temporary change, once the new mgmt interface comes
up in Bluez, we wouldn't need this.
Change-Id: Ifbd93d7f69b93515dda6c6f4ad2796853f9d5841
|
|
|
|
|
|
|
| |
unused imports, local variabls and static constans removed from
com.android.bluetooth.opp package.
Change-Id: I0fd682a190221e216fac71723c05d3828b9fa42d
|
|
|
|
|
|
|
| |
Change-Id: I7baafb909b74783da4e51d48f2465e7aacf07eb5
DrNo: eastham
Bug: 2158765
Joke: What goes 99-thump, 99-thump? A centipede with a wooden leg.
|
|
|
|
|
|
|
|
| |
Add timeout handling to incoming file confirm dialog, to avoid uncertain
behavior when timeout happen
Fix PBAP request timeout issue when open/close slider, dismiss timeout
dialog to avoid uncertain behavior
Fix typo in strings
|
|
|
|
| |
Change-Id: Ia0eb46d9bdff6a8ab3333bb0ad1f66d0303c135a
|
|
|
|
|
|
|
|
|
| |
Use new API BluetoothDevice.fetchUuidsWithSdp() to query SDP for un-paired device, and request SDP
update when Opp is not in cache.
Handle a concurrent case when incoming connection and file share happens together
Some other minor changes
Change-Id: I7ebf34801518867553551d8f7bba7ac62e22667e
|
| |
|
|
|
|
|
|
|
| |
Rename extra dots to underscores.
Working with Poloroid to get an updated list of affected MAC addresses. For now
we just have 00:04:48.
|
|
|
|
|
| |
Stop Rfcomm polling
Delete a few unused functions
|
|
|
|
|
|
|
|
|
|
| |
Use the pattern if (V) Log.v(...); for logging. The Android style prefers curly braces, but for log lines it is ok to use a one-liner to keep the code manageable.
Remove spaces from some log tags, and rename TAG BluetoothShareProvider to BluetoothOpp.
Rename LOGVV to V, and LOGV to D.
Just before ship we will change Constants.DEBUG and Constants.VERBOSE to false to compile out all the logging code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite provider permission to allow LiveFolders work
Support file:// uri to share file
Support multiple share from gallery
Fully support sending file queue
Hold incoming connection for a while when OPP is busy instead of reject directly
Move notification update to a thread
Handle many error cases to display correct error messages
Improve server/client timeout
Delete empty file after reject incoming file
Support upper case incoming file extension
Avoid multiple mediascanner connections
|
|
|
|
|
|
|
|
|
| |
Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.
BluetoothAdapter: Represents the local BT adapter. Operations on the local
adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
(pair, connect, etc).
|
|
|
|
|
| |
Grab wakelock for server session
Fix send small file bug
|
|
|
|
|
| |
Fix the bug that second receving would fail
Show display name instead of full name in notification
|
|
|
|
|
|
|
| |
Modify to make opp application compliable in new git
-change package name
-change manifest
-modify a few comments
|
|
Minor changes from Moto code:
- Added Motorola BSD license
- Moved com.motorola.bluetoothshare to com.android.bluetooth.opp
- Updated com.motorola.obex to javax.obex
- Moved Android.mk to Android.mk.hide: does not yet compile due to changes in
Obex library.
|