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
This commit is contained in:
PauloftheWest
2014-10-01 06:14:58 -07:00
parent f7b567081e
commit 797fc45ff6

View File

@@ -90,12 +90,10 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
}
public void setupSwitchBar() {
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.show();
}
public void teardownSwitchBar() {
mSwitchBar.removeOnSwitchChangeListener(this);
mSwitchBar.hide();
}
@@ -112,6 +110,7 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
// 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 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
return;
}
mSwitchBar.removeOnSwitchChangeListener(this);
mContext.unregisterReceiver(mReceiver);
mValidListener = false;
}