OSDN Git Service

Update battery dashboard based on spec
authorjackqdyulei <jackqdyulei@google.com>
Wed, 2 Jan 2019 23:22:55 +0000 (15:22 -0800)
committerjackqdyulei <jackqdyulei@google.com>
Thu, 3 Jan 2019 20:59:12 +0000 (12:59 -0800)
Following CL will change "battery suggestion" to card layout.

Bug: 119618813
Test: Screenshot
Change-Id: If71e5c0e4a4e230358aa0c8aa584028082f31d2e

res/layout/battery_header.xml
res/values/strings.xml
src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java

index d6ecafa..b3b699a 100644 (file)
     android:layout_height="match_parent"
     android:layout_gravity="center"
     android:orientation="horizontal"
-    android:paddingTop="24dp"
-    android:paddingBottom="24dp"
     style="@style/EntityHeader">
 
     <LinearLayout
-        android:layout_width="0dp"
+        android:layout_width="170dp"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:layout_marginStart="56dp"
+        android:layout_marginStart="72dp"
         android:layout_marginEnd="8dp"
         android:orientation="vertical">
 
@@ -39,8 +36,8 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="12dp"
-            android:fontFamily="@*android:string/config_headlineFontFamily"
-            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Display1"/>
+            android:textAppearance="@style/TextAppearance.EntityHeaderTitle"
+            android:textSize="36sp" />
 
         <TextView
             android:id="@+id/summary1"
             android:layout_marginTop="8dp"
             android:minLines="2"
             android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/>
+            android:textColor="?android:attr/textColorPrimary"/>
 
         <TextView
             android:id="@+id/summary2"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/>
-
+            android:textColor="?android:attr/textColorPrimary"/>
     </LinearLayout>
 
     <com.android.settings.fuelgauge.BatteryMeterView
         android:id="@+id/battery_header_icon"
-        android:layout_width="@dimen/battery_meter_width"
+        android:layout_width="match_parent"
         android:layout_height="@dimen/battery_meter_height"
-        android:layout_marginEnd="16dp"/>
+        android:layout_gravity="center"/>
 
 </LinearLayout>
\ No newline at end of file
index cbdedf0..a1d67d5 100644 (file)
         <item quantity="other">%1$d apps restricted</item>
     </plurals>
 
+    <!-- Title to display the battery percentage. [CHAR LIMIT=24] -->
+    <string name="battery_header_title_alternate"><xliff:g id="number" example="88">^1</xliff:g><small> <font size="20"><xliff:g id="unit" example="%">%</xliff:g></font></small></string>
+
     <!-- Title for force stop dialog [CHAR LIMIT=30] -->
     <string name="dialog_stop_title">Stop app?</string>
     <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
index 48f4cc1..3064d4f 100644 (file)
@@ -21,8 +21,10 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.icu.text.NumberFormat;
 import android.os.BatteryManager;
 import android.os.PowerManager;
+import android.text.TextUtils;
 import android.widget.TextView;
 
 import androidx.annotation.VisibleForTesting;
@@ -83,7 +85,7 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        mBatteryLayoutPref = (LayoutPreference) screen.findPreference(getPreferenceKey());
+        mBatteryLayoutPref = screen.findPreference(getPreferenceKey());
         mBatteryMeterView = mBatteryLayoutPref
                 .findViewById(R.id.battery_header_icon);
         mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
@@ -107,7 +109,7 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
     }
 
     public void updateHeaderPreference(BatteryInfo info) {
-        mBatteryPercentText.setText(Utils.formatPercentage(info.batteryLevel));
+        mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel));
         if (info.remainingLabel == null) {
             mSummary1.setText(info.statusLabel);
         } else {
@@ -133,6 +135,11 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
         mBatteryMeterView.setBatteryLevel(batteryLevel);
         mBatteryMeterView.setCharging(!discharging);
         mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode());
-        mBatteryPercentText.setText(Utils.formatPercentage(batteryLevel));
+        mBatteryPercentText.setText(formatBatteryPercentageText(batteryLevel));
+    }
+
+    private CharSequence formatBatteryPercentageText(int batteryLevel) {
+        return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
+                NumberFormat.getIntegerInstance().format(batteryLevel));
     }
 }
index b22821b..5be7274 100644 (file)
@@ -140,8 +140,9 @@ public class BatteryHeaderPreferenceControllerTest {
 
         assertThat(((BatteryMeterView) mBatteryLayoutPref.findViewById(
                 R.id.battery_header_icon)).getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
-        assertThat(((TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent)).getText())
-            .isEqualTo("60%");
+        assertThat(((TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent))
+                .getText().toString())
+                .isEqualTo("60 %");
     }
 
     @Test
@@ -195,7 +196,7 @@ public class BatteryHeaderPreferenceControllerTest {
 
         assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
         assertThat(mBatteryMeterView.getCharging()).isTrue();
-        assertThat(mBatteryPercentText.getText()).isEqualTo("60%");
+        assertThat(mBatteryPercentText.getText().toString()).isEqualTo("60 %");
         assertThat(mSummary.getText()).isEqualTo(BATTERY_STATUS);
         assertThat(mSummary2.getText()).isEqualTo(BATTERY_STATUS);
     }