Merge "Refine battery text in battery header"

This commit is contained in:
Lei Yu
2017-02-21 18:40:49 +00:00
committed by Android (Google) Code Review
4 changed files with 36 additions and 12 deletions

View File

@@ -4489,6 +4489,9 @@
<!-- Description for battery time left, i.e. 50min Estimated time left. [CHAR LIMIT=80]--> <!-- Description for battery time left, i.e. 50min Estimated time left. [CHAR LIMIT=80]-->
<string name="estimated_time_left">Estimated time left</string> <string name="estimated_time_left">Estimated time left</string>
<!-- Description for charging time left, i.e. 50min Time to full charge. [CHAR LIMIT=80]-->
<string name="estimated_charging_time_left">Time to full charge</string>
<!-- Description for estimated time. [CHAR LIMIT=80]--> <!-- Description for estimated time. [CHAR LIMIT=80]-->
<string name="estimated_time_description">Estimation may change based on usage</string> <string name="estimated_time_description">Estimation may change based on usage</string>

View File

@@ -60,7 +60,9 @@ public class BatteryHistoryPreference extends Preference {
view.itemView.setClickable(true); view.itemView.setClickable(true);
view.setDividerAllowedAbove(true); view.setDividerAllowedAbove(true);
((TextView) view.findViewById(R.id.charge)).setText(mBatteryInfo.batteryPercentString); ((TextView) view.findViewById(R.id.charge)).setText(mBatteryInfo.batteryPercentString);
((TextView) view.findViewById(R.id.estimation)).setText(mBatteryInfo.remainingLabel); ((TextView) view.findViewById(R.id.estimation)).setText(
mBatteryInfo.remainingLabel != null ?
mBatteryInfo.remainingLabel : mBatteryInfo.statusLabel);
UsageView usageView = (UsageView) view.findViewById(R.id.battery_usage); UsageView usageView = (UsageView) view.findViewById(R.id.battery_usage);
usageView.findViewById(R.id.label_group).setAlpha(.7f); usageView.findViewById(R.id.label_group).setAlpha(.7f);
mBatteryInfo.bindHistory(usageView); mBatteryInfo.bindHistory(usageView);

View File

@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge; package com.android.settings.fuelgauge;
import android.annotation.StringRes;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@@ -473,15 +474,18 @@ public class PowerUsageSummary extends PowerUsageBase {
final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.time); final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.time);
final TextView summary1 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1); final TextView summary1 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1);
final TextView summary2 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary2); final TextView summary2 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary2);
final int visible = info.mBatteryLevel != 100 ? View.VISIBLE : View.INVISIBLE; final int visible = info.remainingTimeUs != 0 ? View.VISIBLE : View.INVISIBLE;
final int summaryResId = info.mDischarging ?
R.string.estimated_time_left : R.string.estimated_charging_time_left;
if (info.remainingTimeUs != 0) { if (info.remainingTimeUs != 0) {
timeText.setText(Utils.formatElapsedTime(getContext(), timeText.setText(Utils.formatElapsedTime(getContext(),
info.remainingTimeUs / 1000, false)); info.remainingTimeUs / 1000, false));
} else { } else {
timeText.setText(info.remainingLabel != null ? timeText.setText(info.statusLabel);
info.remainingLabel : info.batteryPercentString);
} }
summary1.setText(summaryResId);
summary1.setVisibility(visible); summary1.setVisibility(visible);
summary2.setVisibility(visible); summary2.setVisibility(visible);
batteryView.setBatteryInfo(info.mBatteryLevel); batteryView.setBatteryInfo(info.mBatteryLevel);

View File

@@ -65,8 +65,7 @@ public class PowerUsageSummaryTest {
private static final String TIME_LEFT = "2h30min"; private static final String TIME_LEFT = "2h30min";
private static final int UID = 123; private static final int UID = 123;
private static final int POWER_MAH = 100; private static final int POWER_MAH = 100;
private static final int BATTERY_LEVEL_FULL = 100; private static final long REMAINING_TIME_US = 100000;
private static final int BATTERY_LEVEL_HALF = 50;
private static final double BATTERY_SCREEN_USAGE = 300; private static final double BATTERY_SCREEN_USAGE = 300;
private static final double BATTERY_SYSTEM_USAGE = 600; private static final double BATTERY_SYSTEM_USAGE = 600;
private static final double PRECISION = 0.001; private static final double PRECISION = 0.001;
@@ -269,25 +268,41 @@ public class PowerUsageSummaryTest {
} }
@Test @Test
public void testUpdatePreference_BatteryFull_DoNotShowSummary() { public void testUpdatePreference_NoEstimatedTime_DoNotShowSummary() {
mBatteryInfo.mBatteryLevel = BATTERY_LEVEL_FULL; mBatteryInfo.remainingTimeUs = 0;
mBatteryInfo.remainingLabel = TIME_LEFT; mBatteryInfo.remainingLabel = TIME_LEFT;
mPowerUsageSummary.updateHeaderPreference(mBatteryInfo); mPowerUsageSummary.updateHeaderPreference(mBatteryInfo);
verify(mSummary1).setVisibility(View.INVISIBLE); verify(mSummary1).setVisibility(View.INVISIBLE);
verify(mSummary2).setVisibility(View.INVISIBLE); verify(mSummary2).setVisibility(View.INVISIBLE);
verify(mTimeText).setText(mBatteryInfo.remainingLabel);
} }
@Test @Test
public void testUpdatePreference_BatteryNotFull_ShowSummary() { public void testUpdatePreference_HasEstimatedTime_ShowSummary() {
mBatteryInfo.mBatteryLevel = BATTERY_LEVEL_HALF; mBatteryInfo.remainingTimeUs = REMAINING_TIME_US;
mBatteryInfo.remainingLabel = TIME_LEFT; mBatteryInfo.remainingLabel = TIME_LEFT;
mPowerUsageSummary.updateHeaderPreference(mBatteryInfo); mPowerUsageSummary.updateHeaderPreference(mBatteryInfo);
verify(mSummary1).setVisibility(View.VISIBLE); verify(mSummary1).setVisibility(View.VISIBLE);
verify(mSummary2).setVisibility(View.VISIBLE); verify(mSummary2).setVisibility(View.VISIBLE);
verify(mTimeText).setText(mBatteryInfo.remainingLabel); }
@Test
public void testUpdatePreference_Charging_ShowChargingTimeLeft() {
mBatteryInfo.remainingTimeUs = REMAINING_TIME_US;
mBatteryInfo.mDischarging = false;
mPowerUsageSummary.updateHeaderPreference(mBatteryInfo);
verify(mSummary1).setText(R.string.estimated_charging_time_left);
}
@Test
public void testUpdatePreference_NotCharging_ShowTimeLeft() {
mBatteryInfo.remainingTimeUs = REMAINING_TIME_US;
mBatteryInfo.mDischarging = true;
mPowerUsageSummary.updateHeaderPreference(mBatteryInfo);
verify(mSummary1).setText(R.string.estimated_time_left);
} }
public static class TestFragment extends PowerUsageSummary { public static class TestFragment extends PowerUsageSummary {