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