History log of /packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
348b6390d7344299573cf230ee74160f5d53994a 23-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Properly update profile connection state

When DUT is toggled between various paired Headsets Connection
state is not updated properly in some scenarios. This is causing
Bluetooth icon to be in connected state even when no Headsets are
connected.

With this patch we will broadcast connection states in case of
failure and will make sure connected, connecting, disconnecting
devices count is never negative.

Test: Toggle between various paired devices in settings
Bug: 35657640
Change-Id: Icb1a7215ff6d9491afbb5f7f203ca0a2c6b7f43a
(cherry picked from commit 921e34fc7ffd18b4f831bbcf0cf38e7268a00613)
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
2c2aec2ef9436eb6d7c8ab5628a5dc86e511b52d 01-Jun-2017 Pavlin Radoslavov <pavlin@google.com> Merge "Improve internal state synchronization of the A2dpStateMachine" am: 1de504036f am: 2e5ab36e0d
am: 017346d9d7

Change-Id: I501deaba8e5ec202c9f24acfd52f4c608ab61bc0
459978de76c5d152208538f61180e4a790c6e8d9 01-Jun-2017 Pavlin Radoslavov <pavlin@google.com> Improve internal state synchronization of the A2dpStateMachine

* Don't block entering Disconnected state
If the mCurrentDevice or mTargetDevice or mIncomingDevice
is not null, print an error message and reset the state
* Add consistency checks when entering each state: Disconnected,
Pending, Connected
* Add a missing "synchronized" statement

Bug: 62164051
Test: Manual
Change-Id: I5856a88e58b42aa55d9075aa507bfa706ea52512
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
75ddeb7d0efdaac8407af59d1df1d79ac653c895 11-May-2017 Ajay Panicker <apanicke@google.com> Merge "Remove delay received from audio layer for A2DP state changes" am: fa31e9b594 am: 2959cd2704
am: 3ec66a3406

Change-Id: I9fed9792bab69879e9969bce7e88897094491dcc
895d2fc990ef39441731af44b3603355ddb05a46 08-May-2017 Ajay Panicker <apanicke@google.com> Remove delay received from audio layer for A2DP state changes

Due to changes in the audio layer, the
setBluetoothA2dpDeviceConnectionState() function now returns a
delay of 0 on a state change from disconnecting to disconnected.
After a discussion with the audio team, the delay returned by
this function isn't actually relevant to the A2DP state machine
so instead remove the dependency on the delay returned.

Bug: 37906688
Test: Disconnect from headset multiple times and see that it is
not stuck disconnecting.

Change-Id: I108cc5230a571edbd26fcb1f985a0b14cb7123b6
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
4981ddba0b7d0b1fb95fab66d9f38f9bc92b1bc0 30-Mar-2017 Pavlin Radoslavov <pavlin@google.com> Merge "Add new internal API: enableOptionalCodecs()/disableOptionalCodecs()" am: 5d6dc68180 am: 7024a64f0d
am: 02de9e25ca

Change-Id: I5d07416b1014d7bba42c3f58c2672977a4804011
7aec8406176f8cef0b608c22b6e631df71ccd363 24-Feb-2017 Pavlin Radoslavov <pavlin@google.com> Add new internal API: enableOptionalCodecs()/disableOptionalCodecs()

This API can be used to enable the optional codecs, or disable them
and use only the mandatory SBC.
Internally, it is implemented by raising the SBC priority to
highest (so SBC will be used/selected), or reducing the SBC priority
to its default value (lowest).

Test: A2DP streaming and enabling/disabling/selecting optional codecs
Bug: 35873828
Change-Id: I3f0dfc2e965e89647c03d032089dcccbd5fb8ffc
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
90ecb737f15de886ec646e66f5099d608b87d418 09-Feb-2017 Christopher Tate <ctate@google.com> Send Bt connection-state-changed broadcasts to manifest receivers

Connection-state notifications are intentionally allowed to launch apps
that have subscribed to them.

Bug 35207510

Change-Id: I8d2c9ff53f7338e3f7f43cdde9419cc29aaaab22
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
8a9f762c80d436719375de5d5f83c1c11e9f5723 02-Feb-2017 Pavlin Radoslavov <pavlin@google.com> Add a mechanism to configure the default A2DP codec priorities

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

- a2dp_source_codec_priority_sbc
- a2dp_source_codec_priority_aac
- a2dp_source_codec_priority_aptx
- a2dp_source_codec_priority_aptx_hd
- a2dp_source_codec_priority_ldac

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

Test: Manually streaming to a headset
Change-Id: Ic3cf8549b46547dbeba93632c3178c6b7f2b810d
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
08d3925d3d72837e6f86c9e0beaed5f7b813ea37 26-Jan-2017 Pavlin Radoslavov <pavlin@google.com> Update the A2DP Codec Config API

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

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

Test: A2DP streaming with headsets and switching the codecs
Change-Id: I18536cffc5c73abc31c3d6afa54f9d3c3b1d577e
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
86c29fe88456bdcfbd4334647b04ef81ff384a06 22-Dec-2016 Sanket Agarwal <sanketa@google.com> Separate Phone Policy from mechanism

Create a new policy file which interacts using either public APIs (such
as Intents) or uses equivalent functions which are exposed by the
binder. This is an attempt to be able to separate policy such that
different devices can have different policies.

Bug: b/33079907
Test: JUnit tests
Change-Id: I6c5a7ee9eb4e10f5f649794546acde5ec4b297aa
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
33b6b7d2b08dcd7ced1809e2ac653c5e8c2514af 21-Dec-2016 Pavlin Radoslavov <pavlin@google.com> Add a mechanism for configuring the A2DP Source codecs

* Extended the Bluetooth A2DP AIDL interface to get/set the current
codec configuration

* If the current codec config is changed such that the audio feeding
parameters have changed, then inform the Audio Manager so it can
reset accordingly the audio feeding parameters in the Audio HAL to
the Bluetooth stack.

Also, fix the BT_BOND_STATE_* values (unused) in the
AbstractionLayer.java class so they match the corresponding
BT_BOND_STATE_* values in
hardware/libhardware/include/hardware/bluetooth.h

Test: A2DP streaming to headsets, TestPlans/71390
Bug: 30958229
Change-Id: Ic3e35154d9dbc32b66522322cd5d2a96bc5a977c
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
eb7b90f5b93db1230a5b64caa3d8d05a642e33a6 10-May-2016 Marie Janssen <jamuraa@google.com> Cleanup unused requires in java files

Change-Id: I7b055c1d3d3f6a69e9f49c077853ab45fcad7106
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
9135d866b12ff019a4eae37e7a8c0df56a4383f2 26-Aug-2015 Ajay Panicker <apanicke@google.com> HFP/A2DP: Remove pending auto-connect messages when connected

Fixes a bug in which being paired with multiple headsets causes
previously connected headsets to disconnect. This fix removes
pending connect attemps once one device is successfully connected.

Bug: 23111466
Change-Id: Id471189d92643b9626e63197c00e76defd0a72bf
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
391be75c27b6d36930a5645925ed7ab118fa634a 04-Sep-2013 Anubhav Gupta <anubhavg@codeaurora.org> Update UI properly in Connection race Conditions.

Broadcast connection state of incoming device in pending
state and update UI for disconnection of outgoing connection.
This change in conjunction with bluedroid change handles
race condition scenarios when incoming and outgoing A2dp
connections collides.

Bug: 22028876
Change-Id: Ibd80fc7010613887df74fb1903b16de73c77939a
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
6ddb5d5b31b3e4e21b57bbe0457692fdbcc97eba 05-Sep-2013 Anubhav Gupta <anubhavg@codeaurora.org> Move A2dp State to Disconnected when BT is Turned OFF

A2dp State gets Stuck in Connecting state If User tries to connect to
other paired device when device is already connected to one, and before
connection swap succeeds, power-cycles BT.
This change allows the state to move properly to disconnected for the
device pending connect when BT is turned off.

Change-Id: I17bc620551bf735f39327eff59102c14551bcf26

(cherry picked from commit 0ce6816d43761b838b65adbf1e636630e1047fcf)
(cherry picked from commit 51c4d0f1df682f3874915f99ef49ec5c3d9e74ed)
(cherry picked from commit 6583fca29318b3c8bc0b16d588fc939ffdde6142)
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
838949d46a4cc054985a8cfd682004f8dd6d3bbb 28-Oct-2014 Mike Lockwood <lockwood@google.com> Add dumpsys support for bluetooth

Bug: 18159457
Change-Id: I807a7d921b6e5baf111d0f0e3e182c6633a93b7c
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
c030f08f419d596c4aa216c9cca9867e7b5486f0 07-Jun-2014 Mike Lockwood <lockwood@google.com> A2DP Sink: Add support for BluetoothA2dpSink profile

Change-Id: If2c1b9b919c90e65a3808c9a55b554c0e899a9c2
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
9537b0e4648a0c197392d3276b46681523d5f0bc 29-May-2014 Mike Lockwood <lockwood@google.com> Fix arguments to AudioManager.setBluetoothA2dpDeviceConnectionState()

Change-Id: I2a9742bc2e1127f56fafed574794f81578872681
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
188f205b5f093850d4cc627917a21204be36c56a 08-Jan-2014 Zhihai Xu <zhihaixu@google.com> update play status based on A2dp audio state from stack.

this is to work around the problem:some video/audio player didn't
update the play status by calling setPlaybackState.
The headset(HBS730) register the play status update on the phone.
It will depend the play status reported from the phone to send
play or pause command.

bug:11325212
Change-Id: I7fde5960edd4a5b3474fa17456aacd5b4b432d4d
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
fe32e48d4129a3950f3a33f0ab443649b29205fb 07-Jan-2014 Zhihai Xu <zhihaixu@google.com> isA2dpPlaying() reports wrong playing state when suspended

bug:12412483
Change-Id: I1cf209479581bf28fc1ebdc462f552b8ec270520
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
522d3b2b0a69c0157ca87995d92bb712f6102c1a 28-Jan-2013 Wink Saville <wink@google.com> Add protected log methods to StateMachine

This allow child classes to Override the logging and
have consistent behavior across StateMachines.

Change-Id: I7e23a44d08ca304ade2d7830fd0e307f63f1879e
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
ede67c26e7b2564ea35db6d9b3027a269c150e13 24-Oct-2012 Zhihai Xu <zhihaixu@google.com> License of files Bluetooth package is not updated to ASL2

bug 7385618

Change-Id: I338fd87083387706f3b5f410c9592219bb8a1acb
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
fd1da115cbf09b7dd9bca3c7d3a4fb816a835dc5 08-Oct-2012 Matthew Xie <mattx@google.com> Turn off dbg messages, be prepared for production build

bug 7174712

Change-Id: I58747ec6507da8ea8ae27a182b601aaf626ede42
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
6893668d1ccf0cc6361ef31ace52fedc2e37e35a 15-Sep-2012 Wink Saville <wink@google.com> Add StateMachine make methods.

StateMachines must be started before any messages are sent to them
otherwise an exception is thrown.

Bug: 7091976
Change-Id: I05315d45d4d6db42843442b7feb37c665cfabcab
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
ca6110d57998fee7c7b572ca29061ee99a82ba37 09-Aug-2012 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Implement enableNoAutoconnect() for NFC handover

Implementation of BT enable in Quiet mode without initiating auto connect and not allowing
Incoming HFP, A2DP and HID connections.

Change-Id: I857aea8d95677f8287df4641ec0aeae58a9f7a99
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
73d192095093759688cccc896714f71fcee218d8 08-Aug-2012 Matthew Xie <mattx@google.com> Merge "Fix for BT turn on/off issues: NPE, FD/thread leaks, ANR." into jb-mr1-dev
15d36984a79d6e35c659edb0efdf929f0b526bd5 01-Aug-2012 Fred <fredc@broadcom.com> Fix for BT turn on/off issues: NPE, FD/thread leaks, ANR.

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
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
4f5430babbc5a8f870e5a578a4ea3452f41dd97a 01-Aug-2012 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Implement Profile Auto connection logic

Implement Profile Auto connection logic (moved from Settings App )in Bluetooth APK
to avoid Auto connection not happening if the Settings App is not running
As part of this implementation following features are implemented
1. Auto connection initiation during BT on OFF
2. Profile Auto connection priority management
3. Connecting Missing profile logic
4. Initialize Profile Priorities on Bond State Change

Change-Id: I12b7c190e28f043b4b008c9b48ac7e13aaf178e6
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
15d72a0c3338645bcc409023150aec40b08aadc1 29-Jun-2012 Ravi Nagarajan <nravi@broadcom.com> Resolve incoming pairing and connection issue

When the remote side initiates pairing & connection, occassionally
connection is made before the phone has had a chance to do SDP.
In this case, the profile priorities are not initialized, which caused
us to incorrectly reject the incoming connection. Allow connection
if priority is undefined, but device is not unpaired

Change-Id: Icd8257adea19fc9a4d3853cd85da9bd791cfe505

Conflicts:

src/com/android/bluetooth/a2dp/A2dpStateMachine.java
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
10bab53713ca13b3ccdaac5286c9b576e577be5e 25-Jun-2012 Swaminatha Balaji <swbalaji@broadcom.com> Fix for When Hf is rejected the device should initiate A2dp if a2dp is enabled

Change-Id: I15d3d6c8456e94553f479009c600dca1cd2361ac
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
fe0ac5b0476b628be11c93a818f342db90332ea8 20-Jun-2012 Matthew Xie <mattx@google.com> Notify Connection state chnage to AudioManager via an API call

bug 6834913
Change-Id: I58af46710320f3debee1780aeaea7f5548233604
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
a25e9c65c2a0192b7b3d819e2b87704f1942aa2f 21-May-2012 Sreenidhi T <nidhit@broadcom.com> Changing the order of notification of connection state change, as it was causing a race condition, with the UI not being updated with the correct connection state.

Change-Id: I6f4c75e4eac4ae798cb7918a4f1b7458e1eaa4b0
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
75e9fd59f4d4011ba7155732a41b06f0df40bada 15-May-2012 Swaminatha Balaji <swbalaji@broadcom.com> Fix for A2dp/hf connection happening even when profile is disabled in Settings

Change-Id: I32145db12e0107b858e2e25ad1ae6cba6eadb55d
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
74ae04c73312403e89db0f8e9bd9601d403b4783 07-May-2012 fredc <fredc@broadcom.com> Fixed memory leak in Binder objects from repeatedly turning on/off Bluetooth

Change-Id: Ibee5382816d47b1e9b846461942a9daccc4210a7
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
b5cc776c9353a203cdde97e62b25f05d9633d14c 19-Apr-2012 fredc <fredc@broadcom.com> Fixed BT on/off issue

Change-Id: I47cbac9fc694d5604a664f20170eeed90eeee8e6

Conflicts:

jni/com_android_bluetooth_btservice_AdapterService.cpp
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
3fafe61ef25c1899fdc817c52163aec16c31055c 19-Apr-2012 Ravi Nagarajan <nravi@broadcom.com> Memory profiling changes : Updated the Bluetooth code to handle cleaning up 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
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
ac234ef0ddd67471d82f77c41535a5ea1b68b443 19-Apr-2012 Kausik Sinnaswamy <kausik@broadcom.com> Added support to handle A2DP audio state changed events and broadcast
A2dp API intents

Change-Id: I1938e5e0acbbaf602239e14e1dfd3c890712930a
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
9a0efb0ee8c63797280b3b9309782541134e9205 16-Apr-2012 fredc <fredc@broadcom.com> adapter non persistent service. Fixed null exception when profile services connect/disconnect

Change-Id: Iefafd1115471256d3107f039897e2af16077cdae
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
6654f5c903de510a70f9e72cd5ad7837b615d93f 12-Apr-2012 fredc <fredc@broadcom.com> Non persistent adapter service

Change-Id: I65e1c18e2899cea0a1e5c0102c4d24d39dce0249

Conflicts:

jni/com_android_bluetooth_hdp.cpp
jni/com_android_bluetooth_hid.cpp

Conflicts:

jni/com_android_bluetooth_hid.cpp
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
25ec7de5ff422f50f3dbfd0822423c85b47f4794 09-Apr-2012 Ravi Nagarajan <nravi@broadcom.com> Implement the getDevicesMatchingConnectionStates for A2DP

Change-Id: Icf5b14d13c4ee6564876aac529e992a22747ac41
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java
6c91bc0a163cc7600c40d7fb979777fd911d1ef1 17-Feb-2012 Matthew Xie <mattx@google.com> Initial implementation of HFP and A2DP profile/service/statemachine.

Change-Id: Ic6e6d358b94313f237b7be61b70dcc6f4f7902e7
/packages/apps/Bluetooth/src/com/android/bluetooth/a2dp/A2dpStateMachine.java