History log of /packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f4e5f7b83b9a5b0dfa50cd5a2e58e941d0c90a46 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/hfp/HeadsetStateMachine.java
dc68435fca66933c844700040b2497eaf08b0fb9 20-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20494208: Go out of device idle when headset button is pressed

We tell the device idle controller to go out of idle before
starting the voice command activity.

Change-Id: I41900518af61f0cb477ec56eaebfe798c69512f9
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
acc99899ec1c747365d7568a2fe53f53dfc3593f 04-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Handle SLC in MultiHFPending state

Use case:
Connect 2 headsets one after another in quick
succession.

Failure:
SLC for first headset is not happening.

Root cause:
SLC for first headset is not handled when second
headset is connecting.

Fix:
Add handling for SLC event for HS1 in MultiHFPending state.

Change-Id: If0c2553c28e233bea4622fca10c94fddd913afa7
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
6455f2788e2d67c7a7ffa79b94269af06473bc0b 02-Apr-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Add null checks

Added null checks identified by static analysis tool.

Change-Id: I5ff04775313b06d549c5ae97e497dd44e9231b04
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
c924fea547063adc907a3a25044588aa58ac8879 04-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Handle SCO volume change in multihfpending state.

Use case:
1. Connect one headset.
2. Make MO/MT call.
3. While connecting second headset, change
call volume on the phone.

Failure:
SCO volume changed is not updated to first headset.

Root cause:
Volume change is not handled in MultHFPending state.

Fix:
Added handling volume change in MultiHFPending state.

Change-Id: I6ac3cb2968b99de194fa7c0114d45f9d81dcb663
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
8e79653c4d093d6f6696312f668429feb6d62bf3 22-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Handle multiple BLDN commands from headset

When multiple AT+BLDN commands are received
from headset, return ERROR if dialling process
is started for the first AT+BLDN.

Change-Id: I603eb5c5ccdd5f8606a355e5d464e6493d1e7fd9
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
1f7879f020043ee2f255ec3c04804b9b9c2ff869 04-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Do not accept SCO without any active listener.

Use case:
1. Connect to Motorola s305 headset.
2. start playing music on Phone.
3. Make an MO call for last dialled number from headset.
4. Accept and end the call from remote phone.

Failure:
After call ends, music resumes on headset for 1-2secs and
routed to speaker.

Root cause:
Headset is re-connecting SCO after call disconnection.

Fix:
- Some HS re-connect SCO after call disconnection.
Do not accept such incoming SCO connection requests.
- Check for valid SCO listener(active CS or VOIP call, VR started)
before accepting incoming SCO connection requests.

Change-Id: Ifcb1f760b3eabf52d9b507c5d25021b90bfec561
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
303898f623aa134fac30f9ddcbc1523a3538d231 04-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Set correct callState for MT/MO call while in Voip Call.

Use case:
Start MO/MT call during VOIP call.

Failure:
Incorrect response sent to AT+CIND? to headset

Root cause:
terminateScoUsingVirtualVoiceCall() resets callState
from INCOMING/DIALING to IDLE. At the same time, if HS sends AT+CIND?
to read call indicators, it will get wrong value of callsetup. This case
is hit only when SCO for VOIP call is not terminated via SDK API call.

Fix:
When VOIP is ended, save current MO/MT call state to
HeadsetPhoneState class to be able to respond with
proper call states when queried by headset.

Change-Id: Ia3a0a2d67dbfffef474de48cab6ee63b82fa4572
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
2e8302083499fdf5bb391d055e54c3402b0dc556 23-Apr-2015 Andre Eisenbach <eisenbach@google.com> Reduce AdaperService and HeadsetStateMachine log levels

Bug: 20460314
Change-Id: I6d1750845ccd0995800a8f82d2122cb1f3bc108d
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
64e6c05fac01604ac12676118d6b111781fc55c8 08-Dec-2014 Benjamin Franz <bfranz@google.com> am ebdd2435: am 42a756a0: Merge "Allow managed profile apps to use some bluetooth functionality." into lmp-mr1-dev

* commit 'ebdd243545cb732eda9a69e71ff2499c54467fb0':
Allow managed profile apps to use some bluetooth functionality.
2287bc2b01df774378123fe7bc7bca14fee549f7 05-Nov-2014 Benjamin Franz <bfranz@google.com> Allow managed profile apps to use some bluetooth functionality.

Adding a function that checks whether the calling user is the foreground
user or a managed profile associated to this user. This function is
deployed in selected spots to give managed profile apps access to some
part of the bluetooth functionality including the HeadsetService.

Bug: 16968338
Change-Id: Ib0db0847cf361b449484195553725c38ede3b618
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
a8855e560a20888731234a26a4753d902e6a11fe 08-Nov-2014 Mike Lockwood <lockwood@google.com> am fa46a2f6: am cc633970: Merge "Add dumpsys support for bluetooth" into lmp-mr1-dev

* commit 'fa46a2f6087f21c9cc6f7148900c99442fae9589':
Add dumpsys support for bluetooth
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/hfp/HeadsetStateMachine.java
fc6d6d6db59e2f39b04abde6eafa3e5f37faf40e 15-Oct-2014 Matthew Xie <mattx@google.com> am 17771285: Merge "ignore telephony call state if telephony mgr state is idle"

* commit '177712858d5897db18e2adf689c8e75f81f05c87':
ignore telephony call state if telephony mgr state is idle
10260dc85133bbfbc51c53f06ba8992e00d9b67a 04-Aug-2014 jbelloua <jean-marie.bellouard@intel.com> ignore telephony call state if telephony mgr state is idle

When re-connecting a BT headset, the headset state machine requests
telephony stack call state (through queryPhoneState) once
SLC is established. The answer is received asynchronously.

If there is a virtual call (e.g. voip/hang out/skype) ongoing while
connecting BT headset, the audio will be switched automatically to BT SCO
path once connected.

Issue: if the call state from telephony is received while the BT headset
is being used for a virtual call, then the virtual call is stopped,
even if there is no call ongoing, and audio will be routed back to primary
device (speaker/headset).

Proposal: ignore the telephony state in case there is a virtual
call ongoing, but no CSV call, and keep audio routed to the BT
SCO path.

Change-Id: If0ebe8c5cd08f48dd56a593e37f3f05a4fccfc97
jean-marie.bellouard <jean-marie.bellouard@intel.com>
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
93e837dba1f1e976fe827466e2b2c3bd6f1d6ada 10-Oct-2014 Tyler Gunn <tgunn@google.com> am a40ac96c: Issue: turning on bluetooth headset in call doesn\'t change route (2/2).

* commit 'a40ac96c186b6f2105906bb07be45fc8d2ce1436':
Issue: turning on bluetooth headset in call doesn't change route (2/2).
a40ac96c186b6f2105906bb07be45fc8d2ce1436 10-Oct-2014 Tyler Gunn <tgunn@google.com> Issue: turning on bluetooth headset in call doesn't change route (2/2).

In addition to a failure to report CallState from Telecom, the broadcast
of the state change was happening before the active device was set,
causing Telecom to receive the broadcast indicating the audio state has
changed, only to have the Bluetooth service report that bluetooth audio
is not connected yet.

Bug: 17933664
Change-Id: Id4e7c6d4085f5ee990a8d19da8c089399ee60c6d
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
5907b58808823e6b1c8835588c4eb65d2f00ba69 09-Oct-2014 Tyler Gunn <tgunn@google.com> am fbb1fe1e: Moving STATE_DISCONNECTED broadcast.

* commit 'fbb1fe1efa8459f932aed161fbcc0b5e4d52c2d5':
Moving STATE_DISCONNECTED broadcast.
fbb1fe1efa8459f932aed161fbcc0b5e4d52c2d5 08-Oct-2014 Tyler Gunn <tgunn@google.com> Moving STATE_DISCONNECTED broadcast.

In Telecom we were seeing a bug where we received an
ACTION_CONNECTION_STATE_CHANGEDSTATE intent indicating the disconnection
of a bluetooth headset. The BluetoothManager in Telecom would then
query the Bluetooth service to see if there are any devices. Despite
being informed that the device in use was disconnected, it still showed
up as connected.

To fix this, I moved the state broadcast AFTER the disconnected device is
removed from the headset state machine. Looking through all other
disconnect broadcasts in that file, the disconnection happens AFTER in
all other cases as well.

Bug: 17899941
Change-Id: Ice4b2a5b1093e04ffe4c3241a3379aba56898792
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
aee8955c63b2ff42e5655c89fe4cf4b212c25b36 17-Sep-2014 Stuart Scott <stuartscott@google.com> Merge topic 'ksd-to-lmp-sprout-dev' into lmp-sprout-dev

* changes:
[DS] Response fail instead of not response at all
Bluetooth sub selection
fc9bed1b79edf77082f5baa21aa68d791a102ea4 05-Sep-2014 Edward Jee <edjee@google.com> Migrates PBAP and MAP access permission data from Settings to Bluetooth.

Currently, users' preference in phonebook and call history or message
access per each Bluetooth-paired device is stored in Settings application's
shared preferences.

However, some privileged applications other than Settings need to access
such data. So we decided to migrate the data from Settings application's
shared preferences to Bluetooth application's.

Bug: 17158953
Change-Id: I3808891cdcce84aa0d4df31f998c9f1240159d95
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
e25106a23565dfc7feeba707a2826ba2394d71e2 26-Jun-2014 Legler Wu <legler.wu@mediatek.com> [DS] Response fail instead of not response at all

when not able to get subscriber number (return null),
HFP shall response to remote devie with Error instead of
not responding at all.

Change-Id: I4dd90071b72d33de14c69f98a1360a4f53a8bb3f

Conflicts:
src/com/android/bluetooth/hfp/HeadsetStateMachine.java
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
44050ef0ada13303fc7d37f157b1afcf1c1da573 05-Sep-2014 Nitin Arora <niarora@codeaurora.org> BT-HF: Disable Multi HF feature.

Disable Multi HF feature by allowing max hf connections = 1
in HeadsetStateMachine.
bug 17321509

Change-Id: Ia477c728bfb1457def7f302d5533ce63446dffc7
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
8e00c15a0c32c9bc7dab5038edf24bb418f181ef 19-Apr-2013 Ravi Nagarajan <nravi@broadcom.com> Listen for phone state on connect instead of SLC

Phone state listener changed to start on connect. This gaurantees
that the CIND response as part of SLC reflects the right indicator
values
bug 17020870

Change-Id: I47989643600edfa4d4e422998c3a644a7f7556b9
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
a08ff547783c43175c90ed8bd3e4db53482b3dde 30-Jul-2014 Nitin Srivastava <nitinsr@codeaurora.org> MHF: Return the correct connection state for headset.

When more than 1 headset is connected, return the correct
connection state for a headset other than latest connected
headset.
bug 16514538
Change-Id: Id07165f2c023959b7a457a1c1c0ed5c227838973
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
9b05359927c9687bb601a2ac340be87c8a077342 09-Jul-2014 Matthew Xie <mattx@google.com> resolved conflicts for merge of dc497463 to master

Change-Id: I7bb1b91da3ae3b6e7e21b34a0cdfb5ed417135bc
bf765c090de4b973f4eede4f4248f5e422454c2d 21-May-2014 Matthew Xie <mattx@google.com> change bt_headset_wbs to bt_wbs

Change-Id: I8942b29231e4df024bbf3b174abd83e8b5876c96
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
b6132733b6e386cc8c93b5598c72ed8efe04bf3e 28-Apr-2014 Matthew Xie <mattx@google.com> Add WBS support on Bluedroid (5/6)

Bug 13764086

Change-Id: Ib6c5d5f4321006ce1a35045907618abc417e6352
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
255407d2c34234150b09e70584adaf72175b0eea 19-Mar-2014 Zhihai Xu <zhihaixu@google.com> MHF: Disconnect audio for HS1 before disconnecting ACL.

When HS2 is connected while call is active on HS1,
disconnect audio first followed by disconnecting ACL
for HS1.
from QCOM
Change-Id: I53b6fedd47008cf0d6d65a72f744b2df4a198e34
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
5d56b57b6fac07125f5462a6ed3dd3b1a546541b 15-Mar-2014 Sunny Kapdi <sunnyk@codeaurora.org> MHF: Start DIALING_OUT_TIMEOUT for correct device

When processing Dial request, start DIALING_OUT_TIMEOUT
timer for correct matching device.
Also add null check for device retrieved from
getDeviceForMessage()

Change-Id: Id9946c6b91ca1b23a24dfe408a81db25b9dfb86a
CRs-Fixed: 612278
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
1b1780bd64223ee4cc4103b75316ccc0745cbcc5 15-Mar-2014 Sunny Kapdi <sunnyk@codeaurora.org> MHF: Broadcast connected state for HS

- Since telephony doesn't store list of connected HS, BT needs
to broadcast connected state for an already connected HS,
when other HS disconnects. This will notify telephony that
even though one HS is disconnected, but still there is one
other connected HS. This fixes call routing issue to BT HS
from phone UI.

- Set mActiveScoDevice to null when HS disconnects while
it has SCO connected for ongoing call.

Change-Id: I91aba22844938b61afc0bac52b5b6de95354f491
CRs-Fixed: 619841
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
69d4ca45a25e86823fbdb754ca6a3995f8131d59 15-Mar-2014 Nitin Srivastava <nitinsr@codeaurora.org> Multi HF support

1. Added support for Multi HF connections
in Bluetooth application.
2. All connection transition states for
2nd HS onwards is handled in new state-
MultiHFPending.
3. The changes are done to handle proper
state transition for all connected HS.

Change-Id: I033ae57943e50273f9d3cac4c5f8d1624cb9ee09
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
849da7cd88ec65cb153e9d81d3e2ea78418ba181 17-Feb-2014 Nitin Srivastava <nitinsr@codeaurora.org> BT: HFP: Set VR flags to false when HS disconnects

When a HS is disconnected while in VR session and then
reconnected again, VR attempt from HS fails as VR flags
mVoiceRecognitionStarted and mWaitingForVoiceRecognition
were not reset to false when HS disconnected.

Change-Id: I008f01393a5529f63cd8392401e1402a9afe70a8
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
0312f2b5c02e472eca2a91c93d465f81a3c6fc3d 19-Mar-2014 Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> HFP: Fix missing OK for AT+CLCC in virtual call

When AT+CLCC is received from HF while we're in virtual call mode there
is only non-zero index call sent without final zero index call. This
makes AT command response incomplete since no OK is sent.

From HFP specification, section 4.31.1:
"The AG shall always send OK response to HF."

Change-Id: I2d759bd3d65f2adb9a364d40ffe23d6197c6375b
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
dedebbfb6eb1af92f013dedd234c2162cc2ec4be 09-Oct-2013 Edward Jee <edjee@google.com> Handles AT+BVRA=1 received during an open SCO session.

Bug: 11072505
Change-Id: If665517cd9efa087154edd57b23163e7cc098f6f
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
cdc8ec8d84c7f16b851238da0d80b51335c4ea07 16-Aug-2013 Edward Jee <edjee@google.com> Enables AT+ANDROID command in Bluetooth HFP.

Adds another vendor-specific command AT+ANDROID in Bluetooth Hands-Free
Profile. And creates an API function that sends an unsolicited result
code +ANDROID .

Bug: 8736189
Change-Id: I7e5bba8a568f596565a1531948061e4d2fe456e0
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
bb1ac417208c8e283f9b5b49f4413856500ed0f9 05-Aug-2013 Dianne Hackborn <hackbod@google.com> Use explicit Intent for binding to service.

Change-Id: I51971a02532ad0ad8fafb0529e7adf83ed846cf4
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
fd0cb64aeb1f806a041a5881dd2ba846b0aa6a93 02-May-2013 Ravi Nagarajan <nravi@broadcom.com> Fix for roam indicator not updating correctly

Use telephony manager PhoneStateListener to update the roam indicator
bug 8781689

Change-Id: I7c06f162918a10d06d77fb302e99bd2db8b02874
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
28cc9881bb7fb2e5e410006f4f303c494b97665e 01-Dec-2012 Zhihai Xu <zhihaixu@google.com> need send status code back(OK) after broadcast the intent(VENDOR_SPECIFIC_HEADSET_EVENT)

bug 7564004

Change-Id: I5fc1eed1c0db194c3fdd63799b2340eea994988d
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
dd66c701616d77e5bf7f5fd795999f59e5fe28bd 18-Nov-2012 Zhihai Xu <zhihaixu@google.com> Code to broadcast VENDOR_SPECIFIC_HEADSET_EVENT missing

add +XEVENT vendor specific command handler in processUnknownAt

bug 7564004

Change-Id: I78847553700b2da28dbf9ca8f9d0509f5f3fa924
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
fb8b279141dac5255926d2dd4317f803cd1bbcf0 11-Oct-2012 Matthew Xie <mattx@google.com> Fix NREC command format error

Add = sign before off
bug 7326510

Change-Id: Ief269f608646acaa2872679a5c649da3cf22de37
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
44d87716fccf8ff6f114db72711388fa57068078 13-Aug-2012 Ravi Nagarajan <nravi@broadcom.com> listenForPhoneState only after SLC

Start phone state listener after SLC setup, instead of on
Disconnected SM exit(). On BT OFF, quitNow() forces a SM exit()
which incorrectly started the phone state listener. Additionally
no indicator updates should be sent prior to SLC setup
bug 6976119

Change-Id: Icff2bc52602230b098651225bec92d532f3a3ff9
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
6b19b0e94877ae8f0803133f8cfb4885acff2763 14-Jun-2012 Syed Ibrahim M <syedibra@broadcom.com> Virtual call implementation

Change-Id: I72a96eedd1cac10a0da7223ebc9b70fd4a21974d
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
579f67ec87646f840c1235eb62d99ab9fa11f23c 05-Jun-2012 Sreenidhi T <nidhit@broadcom.com> Additional check included for the case when PhoneApp queries Bluetooth Audio state before the stack responds for the sco disconnect issued previously in AudioOn state.

Change-Id: I8b85fc9d3b4463205f01dfaa3bb309a3dbeb8231
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
942da5b41b0c9e45e83e9801f80b982f1e4cd011 18-May-2012 Kausik Sinnaswamy <kausik@broadcom.com> Ensure that A2DP stream is suspended during Voice Dial when SCO
connection is established. This is needed to be compliant with the SIG's
AV+HF whitepaper

Change-Id: Ie072782ea70de0f1b13c6cf8bfcb88c072a1d093
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
ce4edb8ed132976651b32b337f3d90e1a170afa9 08-May-2012 Sreenidhi T <nidhit@broadcom.com> Changes done for disconnecting sco connection based on disconnectAudioNative() return status, instead of waiting till BTA_AG_AUDIO_CLOSE_EVT is received. The delay in disconnecting sco was causing audio to be routed to earpiece instead of speaker, when selected from incall screen.

Change-Id: I307c3e9c114676649750cb64f1043fc7fe79d71b
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
405b6148a168c05f9c9eac6a80db68b9a58392e2 27-Apr-2012 Sreenidhi T <nidhit@broadcom.com> Added AT+CPBR support

Change-Id: Ice860d8f97350d805a5478e94a27ae19cf42dafd
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
68e7fc4f2c62ebc76e86109a919592ad25ec11d7 24-Apr-2012 Ravi Nagarajan <nravi@broadcom.com> Handle NREC. On connect, enable echo cancellation locally, headset will then override it

Change-Id: I8fca1e82d1457b47122c17393ffbff362e1f3134
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
42a6e53f2ec04cbd78fea952fc926fdf3e5b8cd9 19-Apr-2012 Ravi Nagarajan <nravi@broadcom.com> Connection state change has to be handled in AudioOn state. Some headsets send RFCOMM disconnect prior to disconnecting the SCO. In this case the state machine has to handle the connection state change

Change-Id: Ib80a49cbd959055624baae6e5a35022c628f4bba
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java
206363c7e1d2a7eb116aa6559c83431cd3f55def 11-Apr-2012 Ravi Nagarajan <nravi@broadcom.com> AT Response needs to be send for CNUM

Change-Id: Ia6aa0e91bc42b9a77143087f65b95c81117b9e3c
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
8f8e1bdc4dfc5d9d974b0e0b01dbe981707c9c6f 30-Mar-2012 Ravi Nagarajan <nravi@broadcom.com> ATD commands have a trailing ';'. Remove the trailing ';' prior to dialing a call. Else a send tone popup is received.

Change-Id: Icbd53166001d3be102bac6a8d2f782cb22c4dc56
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
5f1bee8200197a49d8ffc49fe3e91d19c927ff52 28-Mar-2012 Ravi Nagarajan <nravi@broadcom.com> Resolved HSP PTS issues. When call is active, and CKPD is received: 1. If audio is not ON, audio will be enabled 2. If audio is ON, call with be disconnected (fixed a typo here, which answered the call, instead of hangup)

Change-Id: Ib60f7109f9fe982523c3db68ea6014c25bad8262
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
b18d6a7da48a6847df88abadd42fbb51316cb76d 27-Mar-2012 Ravi Nagarajan <nravi@broadcom.com> Integrate HFP with VR app. Handle both cases where VR is started by peer as well as launched from the phone

Change-Id: Icf2922f4caf20190fdb3f0afa2ddd19d1852c4fb
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
345d21b0575a4b866bfc9ccfde9c654e7b859ac6 20-Mar-2012 Matthew Xie <mattx@google.com> Fix persistent audio on, Donot connect_audio when enter CONNECTED state. Process DISCONNECT message in AudioOn state.

Change-Id: Id89842ff2179234c320752ae69dcf3c99b125bce
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
bcbeaf69468424800a939b3e8678eaef21efa3d6 09-Mar-2012 Matthew Xie <mattx@google.com> process slc_connect state change event, query and send stack the phone state

Change-Id: I4472384290d87f13f7be5647327c789c01582a7b
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
ab1a751670c1bceb23f3cf880f6ad9421c0487c2 19-Mar-2012 Matthew Xie <mattx@google.com> Revert "fix persistent audio on, Donot connect_audio when enter CONNECTED state"

This reverts commit 3ce52a01d734e73a21074ab8397cf67b16d6595f

Hi Matt,
I reviewed your changes (2), and they look good. However, your changes in (1), seem to be causing a side-effect while testing the headset connection setup while call is active/outgoing/incoming. Since this change was merged, I am sending my comments thru email.
Here is the scenario
1. No headset connection

2. Place an outgoing call, and answer it at the remote side

3. Initiate connection from headset

4. SCO seems to be setup by Java side even before SLC setup completes

ISSUE#1: Once Java receives connection event, it automatically calls connect_audio, even though SLC has not been setup
ð Can you make a change to call connect_audio, only after SLC is complete? If this difficult to do, can this code just be removed, as the stack will do automatically after SLC setup when phone_state_change is called

ISSUE#2: If we redo this for an outgoing call (call answered prior to headset connection), then the Java side does not initiate SCO audio
ð To have a consistent behavior, if Java side is setting up SCO for active call, shouldn’t we be doing the same for outgoing call too?

Thanks
Ravi
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
53b834a8a7f9f077ff751ade222d2f81d9d6fdad 09-Mar-2012 Matthew Xie <mattx@google.com> fix persistent audio on, Donot connect_audio when enter CONNECTED state

Change-Id: Ieb2c327ab562c02f293fa616e555ed5a8dc55570
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
47ead0fdf1786e6f0c5bde1c6b1b40b08168edb9 10-Mar-2012 Matthew Xie <mattx@google.com> output call back event information

Change-Id: I6a84a19f91fbb102668745623327f7e234c2ad5d
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
f0b6639617ce2245ffb88968e8a864d0fa99dd8c 09-Mar-2012 Matthew Xie <mattx@google.com> Save volumes and notify stack only when they change

Change-Id: Ibcf6a55111ee3d6ecab6ecd75ab957258b35e49c
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
9b300c1a33952a22c3bba1521da2d01cbf607b7b 08-Mar-2012 Matthew Xie <mattx@google.com> update call state to match hf hal header, memory dial fix null pointer

Change-Id: I62f26d0259a910ac80d7a18c6bef49abb6eab820
/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.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/hfp/HeadsetStateMachine.java