Handle return value when Bluetooth is enabled

If the Bluetooth enable(true) returns false currently we are waiting for
a broadcast (which may not happen if enable returns false). We mark the
toggle to have failed (i.e. it is clickable and in OFF state) and the
switch bar text is appropriately shown.

Bug: b/28318203
Change-Id: I09ba46d2e102e7f2c4ef9a72bf38dedc1346364f
This commit is contained in:
Sanket Agarwal
2016-04-27 13:22:44 -07:00
committed by Andre Eisenbach
parent 726085c5c7
commit 77ad3c2531

View File

@@ -24,6 +24,7 @@ import android.content.IntentFilter;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.util.Log;
import android.widget.Switch;
import android.widget.Toast;
@@ -189,7 +190,16 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
MetricsLogger.action(mContext, MetricsEvent.ACTION_BLUETOOTH_TOGGLE, isChecked);
if (mLocalAdapter != null) {
mLocalAdapter.setBluetoothEnabled(isChecked);
boolean status = mLocalAdapter.setBluetoothEnabled(isChecked);
// If we cannot toggle it ON then reset the UI assets:
// a) The switch should be OFF but it should still be togglable (enabled = True)
// b) The switch bar should have OFF text.
if (isChecked && !status) {
switchView.setChecked(false);
mSwitch.setEnabled(true);
mSwitchBar.setTextViewLabel(false);
return;
}
}
mSwitch.setEnabled(false);
}