diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java b/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java index b4cc4b1586a2d..8869e8dd3821c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSDetailItems.java @@ -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; diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java index 81b8622c548fd..bc3ccb41cce08 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java @@ -134,7 +134,9 @@ public class BluetoothTile extends QSTileImpl { 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 { 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 { 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));