From b662f545427c3082b95d780cbc7b162ff930bee9 Mon Sep 17 00:00:00 2001 From: Michael Chan Date: Sun, 27 Sep 2009 12:46:51 -0700 Subject: [PATCH] b/2137747 Fixed the problem where BT is stuck grayed out if you turned off BT, turned on Airplane mode, turn off then on screen, turned off Airplane mode. Change-Id: I37c628e4a98157ed91d519518773a458dca36c00 --- .../settings/bluetooth/BluetoothEnabler.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java index 3189810b6f2..2e7734ba1cc 100644 --- a/src/com/android/settings/bluetooth/BluetoothEnabler.java +++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java @@ -99,7 +99,7 @@ public class BluetoothEnabler implements Preference.OnPreferenceChangeListener { // Don't update UI to opposite state until we're sure return false; } - + private void setEnabled(final boolean enable) { // Disable preference mCheckBoxPreference.setEnabled(false); @@ -115,8 +115,16 @@ public class BluetoothEnabler implements Preference.OnPreferenceChangeListener { mCheckBoxPreference.setSummary(state == BluetoothAdapter.STATE_OFF ? mOriginalSummary : null); - - mCheckBoxPreference.setEnabled(isEnabledByDependency()); + + /* + * Don't ever disable the preference. Only enable here. Disablement + * is taken care of by the dependency code. If this is disabled + * here, it may not be re-enabled from the framework when dependency + * is met. http://b/issue?id=2053751 + */ + if (isEnabledByDependency()) { + mCheckBoxPreference.setEnabled(true); + } } else if (state == BluetoothAdapter.STATE_TURNING_ON || state == BluetoothAdapter.STATE_TURNING_OFF) {