summaryrefslogtreecommitdiffstats
path: root/core/java/android/server/BluetoothAdapterStateMachine.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/server/BluetoothAdapterStateMachine.java')
-rw-r--r--core/java/android/server/BluetoothAdapterStateMachine.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/core/java/android/server/BluetoothAdapterStateMachine.java b/core/java/android/server/BluetoothAdapterStateMachine.java
index ac46ee2..d26364e 100644
--- a/core/java/android/server/BluetoothAdapterStateMachine.java
+++ b/core/java/android/server/BluetoothAdapterStateMachine.java
@@ -434,6 +434,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));
+ }
}
} else {
if (mPublicState != BluetoothAdapter.STATE_TURNING_ON) {
@@ -486,16 +490,6 @@ final class BluetoothAdapterStateMachine extends StateMachine {
}
return retValue;
}
-
- private void finishSwitchingOff() {
- mBluetoothService.finishDisable();
- if (mContext.getResources().getBoolean
- (com.android.internal.R.bool.config_bluetooth_adapter_quick_switch)) {
- broadcastState(BluetoothAdapter.STATE_OFF);
- } else {
- deferMessage(obtainMessage(TURN_COLD));
- }
- }
}
private class BluetoothOn extends State {
@@ -656,12 +650,10 @@ final class BluetoothAdapterStateMachine extends StateMachine {
//$FALL-THROUGH$ all devices are already disconnected
case ALL_DEVICES_DISCONNECTED:
removeMessages(DEVICES_DISCONNECT_TIMEOUT);
- mBluetoothService.finishDisable();
- broadcastState(BluetoothAdapter.STATE_OFF);
+ finishSwitchingOff();
break;
case DEVICES_DISCONNECT_TIMEOUT:
- mBluetoothService.finishDisable();
- broadcastState(BluetoothAdapter.STATE_OFF);
+ finishSwitchingOff();
Log.e(TAG, "Devices fail to disconnect, reseting...");
transitionTo(mHotOff);
deferMessage(obtainMessage(TURN_COLD));
@@ -695,6 +687,12 @@ final class BluetoothAdapterStateMachine extends StateMachine {
}
}
+ private void finishSwitchingOff() {
+ mBluetoothService.finishDisable();
+ broadcastState(BluetoothAdapter.STATE_OFF);
+ mBluetoothService.cleanupAfterFinishDisable();
+ }
+
private void shutoffBluetooth() {
mBluetoothService.shutoffBluetooth();
mEventLoop.stop();