diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6398943e1a6..7695335ceca 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5963,8 +5963,10 @@
History details
View battery usage
-
- View usage for past 24 hours
+
+ View usage for past 24 hours
+
+ View usage from last full charge
Battery usage
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 326113e2313..19a801110c0 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -52,10 +52,13 @@ import java.util.List;
public class PowerUsageSummary extends PowerUsageBase implements
BatteryTipPreferenceController.BatteryTipListener {
- private static final String KEY_BATTERY_ERROR = "battery_help_message";
-
static final String TAG = "PowerUsageSummary";
+ @VisibleForTesting
+ static final String KEY_BATTERY_ERROR = "battery_help_message";
+ @VisibleForTesting
+ static final String KEY_BATTERY_USAGE = "battery_usage_summary";
+
@VisibleForTesting
static final int BATTERY_INFO_LOADER = 1;
@VisibleForTesting
@@ -78,6 +81,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
boolean mNeedUpdateBatteryTip;
@VisibleForTesting
Preference mHelpPreference;
+ @VisibleForTesting
+ Preference mBatteryUsagePreference;
@VisibleForTesting
final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
@@ -154,12 +159,10 @@ public class PowerUsageSummary extends PowerUsageBase implements
setAnimationAllowed(true);
initFeatureProvider();
+ initPreference();
mBatteryUtils = BatteryUtils.getInstance(getContext());
- mHelpPreference = findPreference(KEY_BATTERY_ERROR);
- mHelpPreference.setVisible(false);
-
if (Utils.isBatteryPresent(getContext())) {
restartBatteryInfoLoader();
} else {
@@ -248,6 +251,18 @@ public class PowerUsageSummary extends PowerUsageBase implements
.getPowerUsageFeatureProvider(context);
}
+ @VisibleForTesting
+ void initPreference() {
+ mBatteryUsagePreference = findPreference(KEY_BATTERY_USAGE);
+ mBatteryUsagePreference.setSummary(
+ mPowerFeatureProvider.isChartGraphEnabled(getContext()) ?
+ getString(R.string.advanced_battery_preference_summary_with_hours) :
+ getString(R.string.advanced_battery_preference_summary));
+
+ mHelpPreference = findPreference(KEY_BATTERY_ERROR);
+ mHelpPreference.setVisible(false);
+ }
+
@VisibleForTesting
void restartBatteryInfoLoader() {
if (getContext() == null) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 11b6ad27f94..843cc99143b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -16,6 +16,8 @@
package com.android.settings.fuelgauge;
import static com.android.settings.fuelgauge.PowerUsageSummary.BATTERY_INFO_LOADER;
+import static com.android.settings.fuelgauge.PowerUsageSummary.KEY_BATTERY_ERROR;
+import static com.android.settings.fuelgauge.PowerUsageSummary.KEY_BATTERY_USAGE;
import static com.google.common.truth.Truth.assertThat;
@@ -37,6 +39,7 @@ import android.os.Bundle;
import android.provider.Settings;
import androidx.loader.app.LoaderManager;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
@@ -83,6 +86,10 @@ public class PowerUsageSummaryTest {
private VisibilityLoggerMixin mVisibilityLoggerMixin;
@Mock
private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private Preference mBatteryUsagePreference;
+ @Mock
+ private Preference mHelpPreference;
private Context mRealContext;
private TestFragment mFragment;
@@ -102,12 +109,16 @@ public class PowerUsageSummaryTest {
when(mFragment.getActivity()).thenReturn(mSettingsActivity);
when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent())
.thenReturn(sAdditionalBatteryInfoIntent);
+ when(mFeatureFactory.powerUsageFeatureProvider.isChartGraphEnabled(mRealContext))
+ .thenReturn(true);
mFragment.mBatteryUtils = spy(new BatteryUtils(mRealContext));
ReflectionHelpers.setField(mFragment, "mVisibilityLoggerMixin", mVisibilityLoggerMixin);
ReflectionHelpers.setField(mFragment, "mBatteryBroadcastReceiver",
mBatteryBroadcastReceiver);
doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
when(mFragment.getContentResolver()).thenReturn(mContentResolver);
+ when(mFragment.findPreference(KEY_BATTERY_USAGE)).thenReturn(mBatteryUsagePreference);
+ when(mFragment.findPreference(KEY_BATTERY_ERROR)).thenReturn(mHelpPreference);
}
@Test
@@ -123,6 +134,30 @@ public class PowerUsageSummaryTest {
assertThat(keys).containsAtLeastElementsIn(niks);
}
+ @Test
+ public void initPreference_chartGraphEnabled_hasCorrectSummary() {
+ mFragment.initPreference();
+
+ verify(mBatteryUsagePreference).setSummary("View usage for past 24 hours");
+ }
+
+ @Test
+ public void initPreference_chartGraphDisabled_hasCorrectSummary() {
+ when(mFeatureFactory.powerUsageFeatureProvider.isChartGraphEnabled(mRealContext))
+ .thenReturn(false);
+
+ mFragment.initPreference();
+
+ verify(mBatteryUsagePreference).setSummary("View usage from last full charge");
+ }
+
+ @Test
+ public void initPreference_helpPreferenceInvisible() {
+ mFragment.initPreference();
+
+ verify(mHelpPreference).setVisible(false);
+ }
+
@Test
public void restartBatteryTipLoader() {
//TODO: add policy logic here when BatteryTipPolicy is implemented