diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8f2c34e077c..1ba4d4de048 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6560,6 +6560,8 @@
No usage from last full charge
No usage for past 24 hr
+
+
Battery left estimate is based on your device usage
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 8019d0a087a..0d0cdba5a09 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -326,10 +326,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
}
if (mEnableTriState) {
- final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
- final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
- final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
- controller.setSummary(getAppActiveTime(foregroundTimeMs, backgroundTimeMs, slotTime));
+ controller.setSummary(getAppActiveTime(bundle));
}
controller.done(context, true /* rebindActions */);
@@ -493,16 +490,21 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
}
- private CharSequence getAppActiveTime(
- long foregroundTimeMs, long backgroundTimeMs, String slotTime) {
+ private CharSequence getAppActiveTime(Bundle bundle) {
+ final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
+ final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
+ final int consumedPower = bundle.getInt(EXTRA_POWER_USAGE_AMOUNT);
+ final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
final long totalTimeMs = foregroundTimeMs + backgroundTimeMs;
final CharSequence usageTimeSummary;
final PowerUsageFeatureProvider powerFeatureProvider =
FeatureFactory.getFactory(getContext()).getPowerUsageFeatureProvider(getContext());
if (totalTimeMs == 0) {
+ final int batteryWithoutUsageTime = consumedPower > 0
+ ? R.string.battery_usage_without_time : R.string.battery_not_usage_24hr;
usageTimeSummary = getText(powerFeatureProvider.isChartGraphEnabled(getContext())
- ? R.string.battery_not_usage_24hr : R.string.battery_not_usage);
+ ? batteryWithoutUsageTime : R.string.battery_not_usage);
} else if (slotTime == null) {
// Shows summary text with past 24 hr or full charge if slot time is null.
usageTimeSummary = powerFeatureProvider.isChartGraphEnabled(getContext())
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index a2e78c3a2b5..3501726bc1a 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -437,6 +437,21 @@ public class AdvancedPowerUsageDetailTest {
.isEqualTo("No usage for past 24 hr");
}
+ @Test
+ public void testInitHeader_noUsageTimeButConsumedPower_hasEmptySummary() {
+ Bundle bundle = new Bundle(3);
+ bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, /* value */ 0);
+ bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, /* value */ 0);
+ bundle.putInt(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_AMOUNT, /* value */ 10);
+ when(mFragment.getArguments()).thenReturn(bundle);
+
+ mFragment.initHeader();
+
+ ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class);
+ verify(mEntityHeaderController).setSummary(captor.capture());
+ assertThat(captor.getValue().toString()).isEmpty();
+ }
+
@Test
public void testInitHeader_backgroundTwoMinForegroundZero_hasCorrectSummary() {
final long backgroundTimeTwoMinutes = 120000;