Update battery dashboard based on spec

Following CL will change "battery suggestion" to card layout.

Bug: 119618813
Test: Screenshot
Change-Id: If71e5c0e4a4e230358aa0c8aa584028082f31d2e
This commit is contained in:
jackqdyulei
2019-01-02 15:22:55 -08:00
parent 0057e45e6f
commit fd0f48df86
4 changed files with 25 additions and 16 deletions

View File

@@ -22,15 +22,12 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:layout_gravity="center"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="24dp"
android:paddingBottom="24dp"
style="@style/EntityHeader"> style="@style/EntityHeader">
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="170dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_marginStart="72dp"
android:layout_marginStart="56dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:orientation="vertical"> android:orientation="vertical">
@@ -39,8 +36,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:fontFamily="@*android:string/config_headlineFontFamily" android:textAppearance="@style/TextAppearance.EntityHeaderTitle"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Display1"/> android:textSize="36sp" />
<TextView <TextView
android:id="@+id/summary1" android:id="@+id/summary1"
@@ -49,19 +46,20 @@
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:minLines="2" android:minLines="2"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/> android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/>
android:textColor="?android:attr/textColorPrimary"/>
<TextView <TextView
android:id="@+id/summary2" android:id="@+id/summary2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/> android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"/>
android:textColor="?android:attr/textColorPrimary"/>
</LinearLayout> </LinearLayout>
<com.android.settings.fuelgauge.BatteryMeterView <com.android.settings.fuelgauge.BatteryMeterView
android:id="@+id/battery_header_icon" 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_height="@dimen/battery_meter_height"
android:layout_marginEnd="16dp"/> android:layout_gravity="center"/>
</LinearLayout> </LinearLayout>

View File

@@ -5226,6 +5226,9 @@
<item quantity="other">%1$d apps restricted</item> <item quantity="other">%1$d apps restricted</item>
</plurals> </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] --> <!-- Title for force stop dialog [CHAR LIMIT=30] -->
<string name="dialog_stop_title">Stop app?</string> <string name="dialog_stop_title">Stop app?</string>
<!-- Message body for force stop dialog [CHAR LIMIT=NONE] --> <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->

View File

@@ -21,8 +21,10 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.icu.text.NumberFormat;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.PowerManager; import android.os.PowerManager;
import android.text.TextUtils;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
@@ -83,7 +85,7 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mBatteryLayoutPref = (LayoutPreference) screen.findPreference(getPreferenceKey()); mBatteryLayoutPref = screen.findPreference(getPreferenceKey());
mBatteryMeterView = mBatteryLayoutPref mBatteryMeterView = mBatteryLayoutPref
.findViewById(R.id.battery_header_icon); .findViewById(R.id.battery_header_icon);
mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent); mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
@@ -107,7 +109,7 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
} }
public void updateHeaderPreference(BatteryInfo info) { public void updateHeaderPreference(BatteryInfo info) {
mBatteryPercentText.setText(Utils.formatPercentage(info.batteryLevel)); mBatteryPercentText.setText(formatBatteryPercentageText(info.batteryLevel));
if (info.remainingLabel == null) { if (info.remainingLabel == null) {
mSummary1.setText(info.statusLabel); mSummary1.setText(info.statusLabel);
} else { } else {
@@ -133,6 +135,11 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
mBatteryMeterView.setBatteryLevel(batteryLevel); mBatteryMeterView.setBatteryLevel(batteryLevel);
mBatteryMeterView.setCharging(!discharging); mBatteryMeterView.setCharging(!discharging);
mBatteryMeterView.setPowerSave(mPowerManager.isPowerSaveMode()); 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));
} }
} }

View File

@@ -140,7 +140,8 @@ public class BatteryHeaderPreferenceControllerTest {
assertThat(((BatteryMeterView) mBatteryLayoutPref.findViewById( assertThat(((BatteryMeterView) mBatteryLayoutPref.findViewById(
R.id.battery_header_icon)).getBatteryLevel()).isEqualTo(BATTERY_LEVEL); R.id.battery_header_icon)).getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
assertThat(((TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent)).getText()) assertThat(((TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent))
.getText().toString())
.isEqualTo("60 %"); .isEqualTo("60 %");
} }
@@ -195,7 +196,7 @@ public class BatteryHeaderPreferenceControllerTest {
assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(BATTERY_LEVEL); assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
assertThat(mBatteryMeterView.getCharging()).isTrue(); assertThat(mBatteryMeterView.getCharging()).isTrue();
assertThat(mBatteryPercentText.getText()).isEqualTo("60%"); assertThat(mBatteryPercentText.getText().toString()).isEqualTo("60 %");
assertThat(mSummary.getText()).isEqualTo(BATTERY_STATUS); assertThat(mSummary.getText()).isEqualTo(BATTERY_STATUS);
assertThat(mSummary2.getText()).isEqualTo(BATTERY_STATUS); assertThat(mSummary2.getText()).isEqualTo(BATTERY_STATUS);
} }