From 7f58b36fec386b3e403a1eb32b506d60be080f10 Mon Sep 17 00:00:00 2001 From: Matthew Xie Date: Wed, 2 May 2012 13:09:58 -0700 Subject: [PATCH] Always move Bluetooth Adapter to cold state when turn off Bluetooth. quick switch feature introduced in ICS does not work very well. Reported logs indicate the Bluez stack cannot sustain the long time ON/hotoff state. This change will always move the adapter to code but move it to hotoff to be able to turn on quickly. bug 5792792 Change-Id: I41c39d4bf11bb5eb3cd83279e8ec81e01774e008 --- .../android/server/BluetoothAdapterStateMachine.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/java/android/server/BluetoothAdapterStateMachine.java b/core/java/android/server/BluetoothAdapterStateMachine.java index 7711caacf5bec..f543de9c7c5a2 100644 --- a/core/java/android/server/BluetoothAdapterStateMachine.java +++ b/core/java/android/server/BluetoothAdapterStateMachine.java @@ -441,9 +441,10 @@ final class BluetoothAdapterStateMachine extends StateMachine { if (mPublicState == BluetoothAdapter.STATE_TURNING_OFF) { transitionTo(mHotOff); finishSwitchingOff(); - if (!mContext.getResources().getBoolean - (com.android.internal.R.bool.config_bluetooth_adapter_quick_switch)) { - deferMessage(obtainMessage(TURN_COLD)); + deferMessage(obtainMessage(TURN_COLD)); + if (mContext.getResources().getBoolean + (com.android.internal.R.bool.config_bluetooth_adapter_quick_switch)) { + deferMessage(obtainMessage(TURN_HOT)); } } } else { @@ -612,9 +613,10 @@ final class BluetoothAdapterStateMachine extends StateMachine { removeMessages(POWER_DOWN_TIMEOUT); if (!((Boolean) message.obj)) { transitionTo(mHotOff); - if (!mContext.getResources().getBoolean + deferMessage(obtainMessage(TURN_COLD)); + if (mContext.getResources().getBoolean (com.android.internal.R.bool.config_bluetooth_adapter_quick_switch)) { - deferMessage(obtainMessage(TURN_COLD)); + deferMessage(obtainMessage(TURN_HOT)); } } else { if (!isTurningOn) {