From b4f8a0be8df351986b24091439339ad7db70d383 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 21 Sep 2017 15:25:15 -0700 Subject: [PATCH] Update the bt background color. The previous cl pass in the resource id rather than real color. This cl fix the bug. Bug: 65397557 Test: RunSettingslibRoboTests Change-Id: I9dafc8bef6adf48b37eba4deff7462f9ba83a695 --- .../graph/BluetoothDeviceLayerDrawable.java | 5 ++++- .../graph/BluetoothDeviceLayerDrawableTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawable.java b/packages/SettingsLib/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawable.java index b7fd40485e4d3..3c5ac8dff0afd 100644 --- a/packages/SettingsLib/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawable.java +++ b/packages/SettingsLib/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawable.java @@ -73,7 +73,7 @@ public class BluetoothDeviceLayerDrawable extends LayerDrawable { final Drawable deviceDrawable = context.getDrawable(resId); final BatteryMeterDrawable batteryDrawable = new BatteryMeterDrawable(context, - R.color.meter_background_color, batteryLevel); + context.getColor(R.color.meter_background_color), batteryLevel); final int pad = context.getResources().getDimensionPixelSize(R.dimen.bt_battery_padding); batteryDrawable.setPadding(pad, pad, pad, pad); @@ -107,6 +107,8 @@ public class BluetoothDeviceLayerDrawable extends LayerDrawable { @VisibleForTesting static class BatteryMeterDrawable extends BatteryMeterDrawableBase { private final float mAspectRatio; + @VisibleForTesting + int mFrameColor; public BatteryMeterDrawable(Context context, int frameColor, int batteryLevel) { super(context, frameColor); @@ -118,6 +120,7 @@ public class BluetoothDeviceLayerDrawable extends LayerDrawable { final int tintColor = Utils.getColorAttr(context, android.R.attr.colorControlNormal); setColorFilter(new PorterDuffColorFilter(tintColor, PorterDuff.Mode.SRC_IN)); setBatteryLevel(batteryLevel); + mFrameColor = frameColor; } @Override diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java index 76760a966667e..adec40267b970 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/graph/BluetoothDeviceLayerDrawableTest.java @@ -100,4 +100,15 @@ public class BluetoothDeviceLayerDrawableTest { assertThat(twinDrawable.getLayerInsetTop(1)).isEqualTo( drawable.getLayerInsetTop(1)); } + + @Test + public void testCreateLayerDrawable_bluetoothDrawable_hasCorrectFrameColor() { + BluetoothDeviceLayerDrawable drawable = BluetoothDeviceLayerDrawable.createLayerDrawable( + mContext, RES_ID, BATTERY_LEVEL); + BluetoothDeviceLayerDrawable.BatteryMeterDrawable batteryMeterDrawable = + (BluetoothDeviceLayerDrawable.BatteryMeterDrawable) drawable.getDrawable(1); + + assertThat(batteryMeterDrawable.mFrameColor).isEqualTo( + mContext.getColor(R.color.meter_background_color)); + } }