Merge "Update battery usage summary" into sc-dev

This commit is contained in:
Wesley Wang
2021-05-10 17:00:07 +00:00
committed by Android (Google) Code Review
3 changed files with 59 additions and 7 deletions

View File

@@ -5963,8 +5963,10 @@
<string name="history_details_title">History details</string>
<!-- Preference title for advanced battery usage [CHAR LIMIT=40] -->
<string name="advanced_battery_preference_title">View battery usage</string>
<!-- Preference summary for advanced battery usage [CHAR LIMIT=40] -->
<string name="advanced_battery_preference_summary">View usage for past 24 hours</string>
<!-- Preference summary for advanced battery usage, for past 24 hours [CHAR LIMIT=40] -->
<string name="advanced_battery_preference_summary_with_hours">View usage for past 24 hours</string>
<!-- Preference summary for advanced battery usage, from last full charge [CHAR LIMIT=40] -->
<string name="advanced_battery_preference_summary">View usage from last full charge</string>
<!-- Activity title for battery usage details for an app. or power consumer -->
<string name="battery_details_title">Battery usage</string>

View File

@@ -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) {

View File

@@ -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