Reuse the BluetoothBatteryDrawable in QS detail

am: 4b7f43bcae

Change-Id: Ie5fd81010fae4660bb0fdd5d6d061fa535d86150
This commit is contained in:
jackqdyulei
2017-10-19 21:31:54 +00:00
committed by android-build-merger
2 changed files with 14 additions and 8 deletions

View File

@@ -34,6 +34,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.android.systemui.FontSizeUtils;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile;
/**
* Quick settings common detail view with line items.
@@ -185,7 +186,7 @@ public class QSDetailItems extends FrameLayout {
view.setVisibility(mItemsVisible ? VISIBLE : INVISIBLE);
final ImageView iv = (ImageView) view.findViewById(android.R.id.icon);
if (item.iconDrawable != null) {
iv.setImageDrawable(item.iconDrawable);
iv.setImageDrawable(item.iconDrawable.getDrawable(iv.getContext()));
} else {
iv.setImageResource(item.icon);
}
@@ -258,7 +259,7 @@ public class QSDetailItems extends FrameLayout {
public static class Item {
public int icon;
public Drawable iconDrawable;
public QSTile.Icon iconDrawable;
public Drawable overlay;
public CharSequence line1;
public CharSequence line2;

View File

@@ -134,7 +134,9 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
if (lastDevice != null) {
int batteryLevel = lastDevice.getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
state.icon = new BluetoothBatteryDrawable(batteryLevel);
state.icon = new BluetoothBatteryDrawable(batteryLevel,
mContext.getResources().getFraction(
R.fraction.bt_battery_scale_fraction, 1, 1));
}
}
state.contentDescription = mContext.getString(
@@ -212,17 +214,21 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
private class BluetoothBatteryDrawable extends Icon {
private int mLevel;
private float mIconScale;
BluetoothBatteryDrawable(int level) {
this(level, 1 /* iconScale */);
}
BluetoothBatteryDrawable(int level, float iconScale) {
mLevel = level;
mIconScale = iconScale;
}
@Override
public Drawable getDrawable(Context context) {
return createLayerDrawable(context,
R.drawable.ic_qs_bluetooth_connected, mLevel,
context.getResources().getFraction(
R.fraction.bt_battery_scale_fraction, 1, 1));
R.drawable.ic_qs_bluetooth_connected, mLevel, mIconScale);
}
}
@@ -304,8 +310,7 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
item.icon = R.drawable.ic_qs_bluetooth_connected;
int batteryLevel = device.getBatteryLevel();
if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
item.iconDrawable = createLayerDrawable(mContext, item.icon,
batteryLevel);
item.iconDrawable = new BluetoothBatteryDrawable(batteryLevel);
item.line2 = mContext.getString(
R.string.quick_settings_connected_battery_level,
Utils.formatPercentage(batteryLevel));