Merge "QS: Make BT detail be more consistent with Settings" into nyc-mr1-dev

This commit is contained in:
TreeHugger Robot
2016-07-19 19:39:32 +00:00
committed by Android (Google) Code Review
5 changed files with 25 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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;

View File

@@ -26,6 +26,9 @@ public interface BluetoothController {
boolean isBluetoothSupported();
boolean isBluetoothEnabled();
int getBluetoothState();
boolean isBluetoothConnected();
boolean isBluetoothConnecting();
String getLastDeviceName();

View File

@@ -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);
}