Fixed a Setting Bluetooth Airplane mode bug.
+ This patch moves the switch listeners from setup/teardown of the SwitchBar
to pause/resume of Bluetooth Settings. This prevents Bluetooth from
receiving connect messages while Airplane mode is turning off Bluetooth
(which is what caused Bluetooth to re-enable.)
Bug: 17465951
Change-Id: I4d32fcf5bb3a2241ed03e2295c86390e15743954
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index 45f3d06..b006c65 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -90,12 +90,10 @@
}
public void setupSwitchBar() {
- mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.show();
}
public void teardownSwitchBar() {
- mSwitchBar.removeOnSwitchChangeListener(this);
mSwitchBar.hide();
}
@@ -112,6 +110,7 @@
// Bluetooth state is not sticky, so set it manually
handleStateChanged(mLocalAdapter.getBluetoothState());
+ mSwitchBar.addOnSwitchChangeListener(this);
mContext.registerReceiver(mReceiver, mIntentFilter);
mValidListener = true;
}
@@ -121,6 +120,7 @@
return;
}
+ mSwitchBar.removeOnSwitchChangeListener(this);
mContext.unregisterReceiver(mReceiver);
mValidListener = false;
}