Merge "QS: Make BT detail be more consistent with Settings" into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c357decc4f
@@ -249,6 +249,9 @@ public class QSDetail extends LinearLayout {
|
||||
return;
|
||||
}
|
||||
mQsDetailHeaderSwitch.setChecked(state);
|
||||
final boolean toggleEnabled = mDetailAdapter != null && mDetailAdapter.getToggleEnabled();
|
||||
mQsDetailHeader.setEnabled(toggleEnabled);
|
||||
mQsDetailHeaderSwitch.setEnabled(toggleEnabled);
|
||||
}
|
||||
|
||||
private void handleScanStateChanged(boolean state) {
|
||||
|
||||
@@ -148,6 +148,9 @@ public abstract class QSTile<TState extends State> {
|
||||
public interface DetailAdapter {
|
||||
CharSequence getTitle();
|
||||
Boolean getToggleState();
|
||||
default boolean getToggleEnabled() {
|
||||
return true;
|
||||
}
|
||||
View createDetailView(Context context, View convertView, ViewGroup parent);
|
||||
Intent getSettingsIntent();
|
||||
void setToggleState(boolean state);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.qs.tiles;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothProfile;
|
||||
import android.content.Context;
|
||||
@@ -207,6 +208,12 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
|
||||
return mState.value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getToggleEnabled() {
|
||||
return mController.getBluetoothState() == BluetoothAdapter.STATE_OFF
|
||||
|| mController.getBluetoothState() == BluetoothAdapter.STATE_ON;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent getSettingsIntent() {
|
||||
return BLUETOOTH_SETTINGS;
|
||||
|
||||
@@ -26,6 +26,9 @@ public interface BluetoothController {
|
||||
|
||||
boolean isBluetoothSupported();
|
||||
boolean isBluetoothEnabled();
|
||||
|
||||
int getBluetoothState();
|
||||
|
||||
boolean isBluetoothConnected();
|
||||
boolean isBluetoothConnecting();
|
||||
String getLastDeviceName();
|
||||
|
||||
@@ -49,6 +49,7 @@ public class BluetoothControllerImpl implements BluetoothController, BluetoothCa
|
||||
private CachedBluetoothDevice mLastDevice;
|
||||
|
||||
private final H mHandler = new H();
|
||||
private int mState;
|
||||
|
||||
public BluetoothControllerImpl(Context context, Looper bgLooper) {
|
||||
mLocalBluetoothManager = LocalBluetoothManager.getInstance(context, null);
|
||||
@@ -119,6 +120,11 @@ public class BluetoothControllerImpl implements BluetoothController, BluetoothCa
|
||||
return mEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBluetoothState() {
|
||||
return mState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBluetoothConnected() {
|
||||
return mConnectionState == BluetoothAdapter.STATE_CONNECTED;
|
||||
@@ -192,7 +198,9 @@ public class BluetoothControllerImpl implements BluetoothController, BluetoothCa
|
||||
|
||||
@Override
|
||||
public void onBluetoothStateChanged(int bluetoothState) {
|
||||
mEnabled = bluetoothState == BluetoothAdapter.STATE_ON;
|
||||
mEnabled = bluetoothState == BluetoothAdapter.STATE_ON
|
||||
|| bluetoothState == BluetoothAdapter.STATE_TURNING_ON;
|
||||
mState = bluetoothState;
|
||||
mHandler.sendEmptyMessage(H.MSG_STATE_CHANGED);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user