diff --git a/res/layout/advanced_bt_entity_sub.xml b/res/layout/advanced_bt_entity_sub.xml index 0f305830bdf..f36379aa2dc 100644 --- a/res/layout/advanced_bt_entity_sub.xml +++ b/res/layout/advanced_bt_entity_sub.xml @@ -51,8 +51,9 @@ android:orientation="horizontal"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center"/> 320dp + + + 16sp + + + 7.8dp + 13dp diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java index 6817d0d3ee3..86196fd0584 100644 --- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java @@ -60,6 +60,7 @@ import java.util.Map; public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop, OnDestroy, CachedBluetoothDevice.Callback { private static final String TAG = "AdvancedBtHeaderCtrl"; + private static final int LOW_BATTERY_LEVEL = 20; @VisibleForTesting LayoutPreference mLayoutPreference; @@ -180,12 +181,18 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont Drawable createBtBatteryIcon(Context context, int level, boolean charging) { final BatteryMeterView.BatteryMeterDrawable drawable = new BatteryMeterView.BatteryMeterDrawable(context, - context.getColor(R.color.meter_background_color)); + context.getColor(R.color.meter_background_color), + context.getResources().getDimensionPixelSize( + R.dimen.advanced_bluetooth_battery_meter_width), + context.getResources().getDimensionPixelSize( + R.dimen.advanced_bluetooth_battery_meter_height)); drawable.setBatteryLevel(level); + final int attr = level > LOW_BATTERY_LEVEL || charging + ? android.R.attr.colorControlNormal + : android.R.attr.colorError; drawable.setColorFilter(new PorterDuffColorFilter( - com.android.settings.Utils.getColorAttrDefaultColor(context, - android.R.attr.colorControlNormal), - PorterDuff.Mode.SRC_IN)); + com.android.settings.Utils.getColorAttrDefaultColor(context, attr), + PorterDuff.Mode.SRC)); drawable.setCharging(charging); return drawable; diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java index dc30c28ace9..d54f5a4e2e0 100644 --- a/src/com/android/settings/fuelgauge/BatteryMeterView.java +++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java @@ -117,6 +117,13 @@ public class BatteryMeterView extends ImageView { .getDimensionPixelSize(R.dimen.battery_meter_height); } + public BatteryMeterDrawable(Context context, int frameColor, int width, int height) { + super(context, frameColor); + + mIntrinsicWidth = width; + mIntrinsicHeight = height; + } + @Override public int getIntrinsicWidth() { return mIntrinsicWidth;