Add battery usage time summary to usage list item
Insert app foregound and background usage time information into the preference item summary based on the different scenarios. Bug: 177406865 Test: make SettingsRoboTests Test: make SettingsGoogleRoboTests Change-Id: I13ba357666adfb7b57f52ffae18d09aed8dd0773
This commit is contained in:
@@ -30,7 +30,9 @@ import android.content.Context;
|
||||
import android.content.ContentValues;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceGroup;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -274,6 +276,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
assertThat(pref.getIcon()).isEqualTo(mDrawable);
|
||||
assertThat(pref.getOrder()).isEqualTo(1);
|
||||
assertThat(pref.getBatteryDiffEntry()).isSameInstanceAs(mBatteryDiffEntry);
|
||||
assertThat(pref.isSingleLineTitle()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -303,7 +306,82 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mPowerGaugePreference)).isFalse();
|
||||
}
|
||||
|
||||
private Map<Long, List<BatteryHistEntry>> createBatteryHistoryMap(int size) {
|
||||
@Test
|
||||
public void testSetPreferenceSummary_setNullContentIfTotalUsageTimeIsZero() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0));
|
||||
assertThat(pref.getSummary()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetPreferenceSummary_setBackgroundUsageTimeOnly() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
|
||||
assertThat(pref.getSummary()).isEqualTo("Background: 1 min");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetPreferenceSummary_setTotalUsageTimeLessThanAMinute() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 100,
|
||||
/*backgroundUsageTimeInMs=*/ 200));
|
||||
assertThat(pref.getSummary()).isEqualTo("Total: less than a min");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetPreferenceSummary_setTotalTimeIfBackgroundTimeLessThanAMinute() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*backgroundUsageTimeInMs=*/ 200));
|
||||
assertThat(pref.getSummary()).isEqualTo("Total: 1 min");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetPreferenceSummary_setTotalAndBackgroundUsageTime() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
|
||||
assertThat(pref.getSummary()).isEqualTo("Total: 2 min\nBackground: 1 min");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetPreferenceSummary_notAllowShownPackage_setSummayAsNull() {
|
||||
final PowerGaugePreference pref = new PowerGaugePreference(mContext);
|
||||
pref.setSummary("fake preference summary");
|
||||
final BatteryDiffEntry batteryDiffEntry =
|
||||
spy(createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
|
||||
doReturn("com.google.android.googlequicksearchbox").when(batteryDiffEntry)
|
||||
.getPackageName();
|
||||
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(pref, batteryDiffEntry);
|
||||
assertThat(pref.getSummary()).isNull();
|
||||
}
|
||||
|
||||
private static Map<Long, List<BatteryHistEntry>> createBatteryHistoryMap(int size) {
|
||||
final Map<Long, List<BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
|
||||
for (int index = 0; index < size; index++) {
|
||||
final ContentValues values = new ContentValues();
|
||||
@@ -313,4 +391,11 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
}
|
||||
return batteryHistoryMap;
|
||||
}
|
||||
|
||||
private BatteryDiffEntry createBatteryDiffEntry(
|
||||
long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
return new BatteryDiffEntry(
|
||||
mContext, foregroundUsageTimeInMs, backgroundUsageTimeInMs,
|
||||
/*consumePower=*/ 0, mBatteryHistEntry);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user