OSDN Git Service

Battery icon is too large
authortimhypeng <timhypeng@google.com>
Thu, 14 Nov 2019 02:53:32 +0000 (10:53 +0800)
committerTim Peng <timhypeng@google.com>
Tue, 26 Nov 2019 04:35:22 +0000 (12:35 +0800)
-sync layout from SystemUI

Bug: 141139595
Test: make -j42 RunSettingsRoboTests
Change-Id: I5e165e953682fcfdebf0d06475bb1abd171684d9
(cherry picked from commit c71f996da97a520a90afbccac4eb4d4d16435bec)
Merged-In: I5e165e953682fcfdebf0d06475bb1abd171684d9

res/layout/advanced_bt_entity_sub.xml
res/values/dimens.xml
src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
src/com/android/settings/fuelgauge/BatteryMeterView.java

index 0f30583..f36379a 100644 (file)
@@ -51,8 +51,9 @@
         android:orientation="horizontal">
         <ImageView
             android:id="@+id/bt_battery_icon"
-            android:layout_width="13dp"
-            android:layout_height="20dp"/>
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"/>
         <TextView
             android:id="@+id/bt_battery_summary"
             style="@style/TextAppearance.EntityHeaderSummary"
index f31a266..042d2f4 100755 (executable)
 
     <!-- System navigation settings illustration height -->
     <dimen name="system_navigation_illustration_height">320dp</dimen>
+
+    <!-- Header title size of advanced bluetooth device -->
+    <dimen name="advanced_bluetooth_header_title_text_size">16sp</dimen>
+
+    <!-- Battery meter icon size of advanced bluetooth device -->
+    <dimen name="advanced_bluetooth_battery_meter_width">7.5dp</dimen>
+    <dimen name="advanced_bluetooth_battery_meter_height">13dp</dimen>
 </resources>
index 6817d0d..86196fd 100644 (file)
@@ -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;
index dc30c28..d54f5a4 100644 (file)
@@ -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;