Populate new fields foreground_service_usage_time_in_ms,
foreground_usage_consume_power, foreground_service_usage_consume_power, background_usage_consume_power and cached_usage_consume_power into database and pass them to UI. Test: make RunSettingsRoboTests + manual Bug: 256123455 Bug: 258124768 Change-Id: Ic46032f67eff5898f9d4182c517bbebe478eca01
This commit is contained in:
@@ -127,8 +127,13 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryDiffEntry = new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 1,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 3,
|
||||
/*backgroundUsageTimeInMs=*/ 2,
|
||||
/*consumePower=*/ 3,
|
||||
/*foregroundUsageConsumePower=*/ 0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 1,
|
||||
/*backgroundUsageConsumePower=*/ 2,
|
||||
/*cachedUsageConsumePower=*/ 0,
|
||||
mBatteryHistEntry);
|
||||
mBatteryDiffEntry = spy(mBatteryDiffEntry);
|
||||
// Adds fake testing data.
|
||||
@@ -458,6 +463,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0));
|
||||
assertThat(pref.getSummary()).isNull();
|
||||
}
|
||||
@@ -470,6 +476,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
|
||||
assertThat(pref.getSummary()).isEqualTo("Background: 1 min");
|
||||
}
|
||||
@@ -482,6 +489,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 100,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 200,
|
||||
/*backgroundUsageTimeInMs=*/ 200));
|
||||
assertThat(pref.getSummary()).isEqualTo("Total: less than a min");
|
||||
}
|
||||
@@ -494,6 +502,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 100,
|
||||
/*backgroundUsageTimeInMs=*/ 200));
|
||||
assertThat(pref.getSummary())
|
||||
.isEqualTo("Total: 1 min\nBackground: less than a min");
|
||||
@@ -507,6 +516,7 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
mBatteryChartPreferenceController.setPreferenceSummary(
|
||||
pref, createBatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*foregroundServiceUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
|
||||
/*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
|
||||
assertThat(pref.getSummary()).isEqualTo("Total: 2 min\nBackground: 1 min");
|
||||
}
|
||||
@@ -717,10 +727,13 @@ public final class BatteryChartPreferenceControllerTest {
|
||||
}
|
||||
|
||||
private BatteryDiffEntry createBatteryDiffEntry(
|
||||
long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
long foregroundUsageTimeInMs, long foregroundServiceUsageTimeInMs,
|
||||
long backgroundUsageTimeInMs) {
|
||||
return new BatteryDiffEntry(
|
||||
mContext, foregroundUsageTimeInMs, backgroundUsageTimeInMs,
|
||||
/*consumePower=*/ 0, mBatteryHistEntry);
|
||||
mContext, foregroundUsageTimeInMs, foregroundServiceUsageTimeInMs,
|
||||
backgroundUsageTimeInMs, /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
|
||||
/*cachedUsageConsumePower=*/ 0, mBatteryHistEntry);
|
||||
}
|
||||
|
||||
private BatteryChartPreferenceController createController() {
|
||||
|
@@ -96,8 +96,13 @@ public final class BatteryDiffEntryTest {
|
||||
new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 10001L,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10002L,
|
||||
/*backgroundUsageTimeInMs=*/ 20002L,
|
||||
/*consumePower=*/ 22.0,
|
||||
/*foregroundUsageConsumePower=*/ 10.0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 10.0,
|
||||
/*backgroundUsageConsumePower=*/ 1.0,
|
||||
/*cachedUsageConsumePower=*/ 1.0,
|
||||
/*batteryHistEntry=*/ null);
|
||||
entry.setTotalConsumePower(100.0);
|
||||
|
||||
@@ -110,8 +115,13 @@ public final class BatteryDiffEntryTest {
|
||||
new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 10001L,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10002L,
|
||||
/*backgroundUsageTimeInMs=*/ 20002L,
|
||||
/*consumePower=*/ 22.0,
|
||||
/*foregroundUsageConsumePower=*/ 10.0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 10.0,
|
||||
/*backgroundUsageConsumePower=*/ 1.0,
|
||||
/*cachedUsageConsumePower=*/ 1.0,
|
||||
/*batteryHistEntry=*/ null);
|
||||
entry.setTotalConsumePower(0);
|
||||
|
||||
@@ -483,8 +493,13 @@ public final class BatteryDiffEntryTest {
|
||||
return new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0,
|
||||
/*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0,
|
||||
/*cachedUsageConsumePower=*/ 0,
|
||||
new BatteryHistEntry(values));
|
||||
}
|
||||
|
||||
@@ -493,8 +508,13 @@ public final class BatteryDiffEntryTest {
|
||||
final BatteryDiffEntry entry = new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0,
|
||||
consumePower,
|
||||
/*foregroundUsageConsumePower=*/ 0,
|
||||
/*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0,
|
||||
/*cachedUsageConsumePower=*/ 0,
|
||||
batteryHistEntry);
|
||||
entry.setTotalConsumePower(100.0);
|
||||
return entry;
|
||||
|
@@ -57,8 +57,13 @@ public final class BatteryHistEntryTest {
|
||||
when(mMockBatteryEntry.isHidden()).thenReturn(true);
|
||||
when(mBatteryUsageStats.getConsumedPower()).thenReturn(5.1);
|
||||
when(mMockBatteryEntry.getConsumedPower()).thenReturn(1.1);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForeground()).thenReturn(1.2);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForegroundService()).thenReturn(1.3);
|
||||
when(mMockBatteryEntry.getConsumedPowerInBackground()).thenReturn(1.4);
|
||||
when(mMockBatteryEntry.getConsumedPowerInCached()).thenReturn(1.5);
|
||||
mMockBatteryEntry.mPercent = 0.3;
|
||||
when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
|
||||
when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
|
||||
when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
|
||||
when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
|
||||
when(mMockBatteryEntry.getConsumerType())
|
||||
@@ -94,7 +99,12 @@ public final class BatteryHistEntryTest {
|
||||
/*timestamp=*/ 10001L,
|
||||
/*totalPower=*/ 5.1,
|
||||
/*consumePower=*/ 1.1,
|
||||
/*foregroundUsageConsumePower=*/ 1.2,
|
||||
/*foregroundServiceUsageConsumePower=*/ 1.3,
|
||||
/*backgroundUsageConsumePower=*/ 1.4,
|
||||
/*cachedUsageConsumePower=*/ 1.5,
|
||||
/*foregroundUsageTimeInMs=*/ 1234L,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 3456L,
|
||||
/*backgroundUsageTimeInMs=*/ 5689L,
|
||||
/*batteryLevel=*/ 12),
|
||||
/*drainType=*/ 3,
|
||||
@@ -178,7 +188,12 @@ public final class BatteryHistEntryTest {
|
||||
lowerTimestamp,
|
||||
/*totalPower=*/ 50,
|
||||
/*consumePower=*/ 10,
|
||||
/*foregroundUsageConsumePower=*/ 1,
|
||||
/*foregroundServiceUsageConsumePower=*/ 2,
|
||||
/*backgroundUsageConsumePower=*/ 3,
|
||||
/*cachedUsageConsumePower=*/ 4,
|
||||
/*foregroundUsageTimeInMs=*/ 100,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 150,
|
||||
/*backgroundUsageTimeInMs=*/ 200,
|
||||
/*batteryLevel=*/ 90);
|
||||
final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
|
||||
@@ -186,7 +201,12 @@ public final class BatteryHistEntryTest {
|
||||
upperTimestamp,
|
||||
/*totalPower=*/ 80,
|
||||
/*consumePower=*/ 20,
|
||||
/*foregroundUsageConsumePower=*/ 4,
|
||||
/*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 6,
|
||||
/*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 200,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 250,
|
||||
/*backgroundUsageTimeInMs=*/ 300,
|
||||
/*batteryLevel=*/ 80);
|
||||
|
||||
@@ -204,7 +224,12 @@ public final class BatteryHistEntryTest {
|
||||
/*timestamp=*/ slotTimestamp,
|
||||
/*totalPower=*/ 50 + 0.5 * (80 - 50),
|
||||
/*consumePower=*/ 10 + 0.5 * (20 - 10),
|
||||
/*foregroundUsageConsumePower=*/ 1 + 0.5 * (4 - 1),
|
||||
/*foregroundServiceUsageConsumePower=*/ 2 + 0.5 * (5 - 2),
|
||||
/*backgroundUsageConsumePower=*/ 3 + 0.5 * (6 - 3),
|
||||
/*cachedUsageConsumePower=*/ 4 + 0.5 * (5 - 4),
|
||||
/*foregroundUsageTimeInMs=*/ Math.round(100 + 0.5 * (200 - 100)),
|
||||
/*foregroundServiceUsageTimeInMs=*/ Math.round(150 + 0.5 * (250 - 150)),
|
||||
/*backgroundUsageTimeInMs=*/ Math.round(200 + 0.5 * (300 - 200)),
|
||||
/*batteryLevel=*/ (int) Math.round(90 + 0.5 * (80 - 90)));
|
||||
}
|
||||
@@ -213,14 +238,18 @@ public final class BatteryHistEntryTest {
|
||||
public void testInterpolate_withoutLowerEntryData_returnExpectedResult() {
|
||||
final long slotTimestamp = 200L;
|
||||
final long upperTimestamp = 300L;
|
||||
final long lowerTimestamp = 100L;
|
||||
final double ratio = 0.5;
|
||||
final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
|
||||
/*bootTimestamp=*/ 1200L,
|
||||
upperTimestamp,
|
||||
/*totalPower=*/ 80,
|
||||
/*consumePower=*/ 20,
|
||||
/*foregroundUsageConsumePower=*/ 4,
|
||||
/*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 6,
|
||||
/*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 200,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 250,
|
||||
/*backgroundUsageTimeInMs=*/ 300,
|
||||
/*batteryLevel=*/ 80);
|
||||
|
||||
@@ -238,7 +267,12 @@ public final class BatteryHistEntryTest {
|
||||
/*timestamp=*/ slotTimestamp,
|
||||
/*totalPower=*/ 0.5 * 80,
|
||||
/*consumePower=*/ 0.5 * 20,
|
||||
/*foregroundUsageConsumePower=*/ 0.5 * 4,
|
||||
/*foregroundServiceUsageConsumePower=*/ 0.5 * 5,
|
||||
/*backgroundUsageConsumePower=*/ 0.5 * 6,
|
||||
/*cachedUsageConsumePower=*/ 0.5 * 5,
|
||||
/*foregroundUsageTimeInMs=*/ Math.round(0.5 * 200),
|
||||
/*foregroundServiceUsageTimeInMs=*/ Math.round(0.5 * 250),
|
||||
/*backgroundUsageTimeInMs=*/ Math.round(0.5 * 300),
|
||||
/*batteryLevel=*/ upperHistEntry.mBatteryLevel);
|
||||
}
|
||||
@@ -262,7 +296,12 @@ public final class BatteryHistEntryTest {
|
||||
/*timestamp=*/ 10001L,
|
||||
/*totalPower=*/ 5.1,
|
||||
/*consumePower=*/ 1.1,
|
||||
/*foregroundUsageConsumePower=*/ 1.2,
|
||||
/*foregroundServiceUsageConsumePower=*/ 1.3,
|
||||
/*backgroundUsageConsumePower=*/ 1.4,
|
||||
/*cachedUsageConsumePower=*/ 1.5,
|
||||
/*foregroundUsageTimeInMs=*/ 1234L,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 3456L,
|
||||
/*backgroundUsageTimeInMs=*/ 5689L,
|
||||
/*batteryLevel=*/ 12);
|
||||
}
|
||||
@@ -275,7 +314,12 @@ public final class BatteryHistEntryTest {
|
||||
long timestamp,
|
||||
double totalPower,
|
||||
double consumePower,
|
||||
double foregroundUsageConsumePower,
|
||||
double foregroundServiceUsageConsumePower,
|
||||
double backgroundUsageConsumePower,
|
||||
double cachedUsageConsumePower,
|
||||
long foregroundUsageTimeInMs,
|
||||
long foregroundServiceUsageTimeInMs,
|
||||
long backgroundUsageTimeInMs,
|
||||
int batteryLevel) {
|
||||
assertThat(entry.isValidEntry()).isTrue();
|
||||
@@ -290,8 +334,15 @@ public final class BatteryHistEntryTest {
|
||||
assertThat(entry.mZoneId).isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(entry.mTotalPower).isEqualTo(totalPower);
|
||||
assertThat(entry.mConsumePower).isEqualTo(consumePower);
|
||||
assertThat(entry.mForegroundUsageConsumePower).isEqualTo(foregroundUsageConsumePower);
|
||||
assertThat(entry.mForegroundServiceUsageConsumePower)
|
||||
.isEqualTo(foregroundServiceUsageConsumePower);
|
||||
assertThat(entry.mBackgroundUsageConsumePower).isEqualTo(backgroundUsageConsumePower);
|
||||
assertThat(entry.mCachedUsageConsumePower).isEqualTo(cachedUsageConsumePower);
|
||||
assertThat(entry.mPercentOfTotal).isEqualTo(percentOfTotal);
|
||||
assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
|
||||
assertThat(entry.mForegroundServiceUsageTimeInMs)
|
||||
.isEqualTo(foregroundServiceUsageTimeInMs);
|
||||
assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
|
||||
assertThat(entry.mDrainType).isEqualTo(drainType);
|
||||
assertThat(entry.mConsumerType)
|
||||
@@ -308,7 +359,12 @@ public final class BatteryHistEntryTest {
|
||||
long timestamp,
|
||||
double totalPower,
|
||||
double consumePower,
|
||||
double foregroundUsageConsumePower,
|
||||
double foregroundServiceUsageConsumePower,
|
||||
double backgroundUsageConsumePower,
|
||||
double cachedUsageConsumePower,
|
||||
long foregroundUsageTimeInMs,
|
||||
long foregroundServiceUsageTimeInMs,
|
||||
long backgroundUsageTimeInMs,
|
||||
int batteryLevel) {
|
||||
final MatrixCursor cursor = new MatrixCursor(
|
||||
@@ -336,9 +392,14 @@ public final class BatteryHistEntryTest {
|
||||
.setAppLabel("Settings")
|
||||
.setTotalPower(totalPower)
|
||||
.setConsumePower(consumePower)
|
||||
.setForegroundUsageConsumePower(foregroundUsageConsumePower)
|
||||
.setForegroundServiceUsageConsumePower(foregroundServiceUsageConsumePower)
|
||||
.setBackgroundUsageConsumePower(backgroundUsageConsumePower)
|
||||
.setCachedUsageConsumePower(cachedUsageConsumePower)
|
||||
.setPercentOfTotal(0.3)
|
||||
.setDrainType(3)
|
||||
.setForegroundUsageTimeInMs(foregroundUsageTimeInMs)
|
||||
.setForegroundServiceUsageTimeInMs(foregroundServiceUsageTimeInMs)
|
||||
.setBackgroundUsageTimeInMs(backgroundUsageTimeInMs)
|
||||
.build();
|
||||
cursor.addRow(
|
||||
|
@@ -196,8 +196,13 @@ public final class BatteryUsageContentProviderTest {
|
||||
.setBootTimestamp(101L)
|
||||
.setTotalPower(99)
|
||||
.setConsumePower(9)
|
||||
.setForegroundUsageConsumePower(1)
|
||||
.setForegroundServiceUsageConsumePower(2)
|
||||
.setBackgroundUsageConsumePower(3)
|
||||
.setCachedUsageConsumePower(3)
|
||||
.setPercentOfTotal(0.9)
|
||||
.setForegroundUsageTimeInMs(1000)
|
||||
.setForegroundServiceUsageTimeInMs(1500)
|
||||
.setBackgroundUsageTimeInMs(2000)
|
||||
.setDrainType(1)
|
||||
.build();
|
||||
|
@@ -26,11 +26,6 @@ import android.os.BatteryManager;
|
||||
import android.os.BatteryUsageStats;
|
||||
import android.os.LocaleList;
|
||||
import android.os.UserHandle;
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import com.android.settings.fuelgauge.BatteryUtils;
|
||||
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -40,13 +35,7 @@ import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@@ -59,15 +48,10 @@ public final class ConvertUtilsTest {
|
||||
@Mock
|
||||
private BatteryEntry mMockBatteryEntry;
|
||||
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
mPowerUsageFeatureProvider = mFeatureFactory.powerUsageFeatureProvider;
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -80,8 +64,13 @@ public final class ConvertUtilsTest {
|
||||
when(mMockBatteryEntry.isHidden()).thenReturn(true);
|
||||
when(mBatteryUsageStats.getConsumedPower()).thenReturn(5.1);
|
||||
when(mMockBatteryEntry.getConsumedPower()).thenReturn(1.1);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForeground()).thenReturn(1.2);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForegroundService()).thenReturn(1.3);
|
||||
when(mMockBatteryEntry.getConsumedPowerInBackground()).thenReturn(1.4);
|
||||
when(mMockBatteryEntry.getConsumedPowerInCached()).thenReturn(1.5);
|
||||
mMockBatteryEntry.mPercent = 0.3;
|
||||
when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
|
||||
when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
|
||||
when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
|
||||
when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
|
||||
when(mMockBatteryEntry.getConsumerType())
|
||||
@@ -117,8 +106,13 @@ public final class ConvertUtilsTest {
|
||||
assertThat(batteryInformation.getZoneId()).isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(batteryInformation.getTotalPower()).isEqualTo(5.1);
|
||||
assertThat(batteryInformation.getConsumePower()).isEqualTo(1.1);
|
||||
assertThat(batteryInformation.getForegroundUsageConsumePower()).isEqualTo(1.2);
|
||||
assertThat(batteryInformation.getForegroundServiceUsageConsumePower()).isEqualTo(1.3);
|
||||
assertThat(batteryInformation.getBackgroundUsageConsumePower()).isEqualTo(1.4);
|
||||
assertThat(batteryInformation.getCachedUsageConsumePower()).isEqualTo(1.5);
|
||||
assertThat(batteryInformation.getPercentOfTotal()).isEqualTo(0.3);
|
||||
assertThat(batteryInformation.getForegroundUsageTimeInMs()).isEqualTo(1234L);
|
||||
assertThat(batteryInformation.getForegroundServiceUsageTimeInMs()).isEqualTo(3456L);
|
||||
assertThat(batteryInformation.getBackgroundUsageTimeInMs()).isEqualTo(5689L);
|
||||
assertThat(batteryInformation.getDrainType()).isEqualTo(expectedType);
|
||||
assertThat(deviceBatteryState.getBatteryLevel()).isEqualTo(12);
|
||||
@@ -169,8 +163,13 @@ public final class ConvertUtilsTest {
|
||||
when(mMockBatteryEntry.isHidden()).thenReturn(true);
|
||||
when(mBatteryUsageStats.getConsumedPower()).thenReturn(5.1);
|
||||
when(mMockBatteryEntry.getConsumedPower()).thenReturn(1.1);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForeground()).thenReturn(1.2);
|
||||
when(mMockBatteryEntry.getConsumedPowerInForegroundService()).thenReturn(1.3);
|
||||
when(mMockBatteryEntry.getConsumedPowerInBackground()).thenReturn(1.4);
|
||||
when(mMockBatteryEntry.getConsumedPowerInCached()).thenReturn(1.5);
|
||||
mMockBatteryEntry.mPercent = 0.3;
|
||||
when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
|
||||
when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
|
||||
when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
|
||||
when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
|
||||
when(mMockBatteryEntry.getConsumerType())
|
||||
@@ -196,9 +195,15 @@ public final class ConvertUtilsTest {
|
||||
.isEqualTo(TimeZone.getDefault().getID());
|
||||
assertThat(batteryHistEntry.mTotalPower).isEqualTo(5.1);
|
||||
assertThat(batteryHistEntry.mConsumePower).isEqualTo(1.1);
|
||||
assertThat(batteryHistEntry.mForegroundUsageConsumePower).isEqualTo(1.2);
|
||||
assertThat(batteryHistEntry.mForegroundServiceUsageConsumePower).isEqualTo(1.3);
|
||||
assertThat(batteryHistEntry.mBackgroundUsageConsumePower).isEqualTo(1.4);
|
||||
assertThat(batteryHistEntry.mCachedUsageConsumePower).isEqualTo(1.5);
|
||||
assertThat(batteryHistEntry.mPercentOfTotal).isEqualTo(0.3);
|
||||
assertThat(batteryHistEntry.mForegroundUsageTimeInMs)
|
||||
.isEqualTo(1234L);
|
||||
assertThat(batteryHistEntry.mForegroundServiceUsageTimeInMs)
|
||||
.isEqualTo(3456L);
|
||||
assertThat(batteryHistEntry.mBackgroundUsageTimeInMs)
|
||||
.isEqualTo(5689L);
|
||||
assertThat(batteryHistEntry.mDrainType).isEqualTo(expectedType);
|
||||
@@ -229,194 +234,6 @@ public final class ConvertUtilsTest {
|
||||
.isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexedUsageMap_nullOrEmptyHistoryMap_returnEmptyCollection() {
|
||||
final int timeSlotSize = 2;
|
||||
final long[] batteryHistoryKeys = new long[]{101L, 102L, 103L, 104L, 105L};
|
||||
|
||||
assertThat(ConvertUtils.getIndexedUsageMap(
|
||||
mContext, timeSlotSize, batteryHistoryKeys,
|
||||
/*batteryHistoryMap=*/ null, /*purgeLowPercentageAndFakeData=*/ true))
|
||||
.isEmpty();
|
||||
assertThat(ConvertUtils.getIndexedUsageMap(
|
||||
mContext, timeSlotSize, batteryHistoryKeys,
|
||||
new HashMap<Long, Map<String, BatteryHistEntry>>(),
|
||||
/*purgeLowPercentageAndFakeData=*/ true))
|
||||
.isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexedUsageMap_returnsExpectedResult() {
|
||||
// Creates the fake testing data.
|
||||
final int timeSlotSize = 2;
|
||||
final long[] batteryHistoryKeys = new long[]{generateTimestamp(0), generateTimestamp(1),
|
||||
generateTimestamp(2), generateTimestamp(3), generateTimestamp(4)};
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
||||
new HashMap<>();
|
||||
final BatteryHistEntry fakeEntry = createBatteryHistEntry(
|
||||
ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", 0, 0L, 0L, 0L);
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", 5.0, 1L, 10L, 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[0]), entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[1]), entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", 10.0, 2L, 15L, 25L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[2]), entryMap);
|
||||
// Adds the index = 3 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", 15.0, 2L, 25L, 35L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package3", "label3", 5.0, 3L, 5L, 5L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[3]), entryMap);
|
||||
// Adds the index = 4 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", 30.0, 2L, 30L, 40L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", 75.0, 4L, 40L, 50L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package3", "label3", 5.0, 3L, 5L, 5L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[4]), entryMap);
|
||||
|
||||
final Map<Integer, List<BatteryDiffEntry>> resultMap =
|
||||
ConvertUtils.getIndexedUsageMap(
|
||||
mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap,
|
||||
/*purgeLowPercentageAndFakeData=*/ false);
|
||||
|
||||
assertThat(resultMap).hasSize(3);
|
||||
// Verifies the first timestamp result.
|
||||
List<BatteryDiffEntry> entryList = resultMap.get(Integer.valueOf(0));
|
||||
assertThat(entryList).hasSize(1);
|
||||
assertBatteryDiffEntry(entryList.get(0), 100, 15L, 25L);
|
||||
// Verifies the second timestamp result.
|
||||
entryList = resultMap.get(Integer.valueOf(1));
|
||||
assertThat(entryList).hasSize(3);
|
||||
assertBatteryDiffEntry(entryList.get(1), 5, 5L, 5L);
|
||||
assertBatteryDiffEntry(entryList.get(2), 75, 40L, 50L);
|
||||
assertBatteryDiffEntry(entryList.get(0), 20, 15L, 15L);
|
||||
// Verifies the last 24 hours aggregate result.
|
||||
entryList = resultMap.get(Integer.valueOf(-1));
|
||||
assertThat(entryList).hasSize(3);
|
||||
assertBatteryDiffEntry(entryList.get(1), 4, 5L, 5L);
|
||||
assertBatteryDiffEntry(entryList.get(2), 68, 40L, 50L);
|
||||
assertBatteryDiffEntry(entryList.get(0), 27, 30L, 40L);
|
||||
|
||||
// Test getIndexedUsageMap() with purged data.
|
||||
ConvertUtils.PERCENTAGE_OF_TOTAL_THRESHOLD = 50;
|
||||
final Map<Integer, List<BatteryDiffEntry>> purgedResultMap =
|
||||
ConvertUtils.getIndexedUsageMap(
|
||||
mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap,
|
||||
/*purgeLowPercentageAndFakeData=*/ true);
|
||||
|
||||
assertThat(purgedResultMap).hasSize(3);
|
||||
// Verifies the first timestamp result.
|
||||
entryList = purgedResultMap.get(Integer.valueOf(0));
|
||||
assertThat(entryList).hasSize(1);
|
||||
// Verifies the second timestamp result.
|
||||
entryList = purgedResultMap.get(Integer.valueOf(1));
|
||||
assertThat(entryList).hasSize(1);
|
||||
assertBatteryDiffEntry(entryList.get(0), 75, 40L, 50L);
|
||||
// Verifies the last 24 hours aggregate result.
|
||||
entryList = purgedResultMap.get(Integer.valueOf(-1));
|
||||
assertThat(entryList).hasSize(1);
|
||||
// Verifies the fake data is cleared out.
|
||||
assertThat(entryList.get(0).getPackageName())
|
||||
.isNotEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexedUsageMap_usageTimeExceed_returnsExpectedResult() {
|
||||
final int timeSlotSize = 1;
|
||||
final long[] batteryHistoryKeys = new long[]{101L, 102L, 103L};
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
|
||||
new HashMap<>();
|
||||
final BatteryHistEntry fakeEntry = createBatteryHistEntry(
|
||||
ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", 0, 0L, 0L, 0L);
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[0]), entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[1]), entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
final BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package3", "label3", 500, 5L, 3600000L, 7200000L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[2]), entryMap);
|
||||
|
||||
final Map<Integer, List<BatteryDiffEntry>> purgedResultMap =
|
||||
ConvertUtils.getIndexedUsageMap(
|
||||
mContext, timeSlotSize, batteryHistoryKeys, batteryHistoryMap,
|
||||
/*purgeLowPercentageAndFakeData=*/ true);
|
||||
|
||||
assertThat(purgedResultMap).hasSize(2);
|
||||
final List<BatteryDiffEntry> entryList = purgedResultMap.get(0);
|
||||
assertThat(entryList).hasSize(1);
|
||||
// Verifies the clipped usage time.
|
||||
final float ratio = (float) (7200) / (float) (3600 + 7200);
|
||||
final BatteryDiffEntry resultEntry = entryList.get(0);
|
||||
assertThat(resultEntry.mForegroundUsageTimeInMs)
|
||||
.isEqualTo(Math.round(entry.mForegroundUsageTimeInMs * ratio));
|
||||
assertThat(resultEntry.mBackgroundUsageTimeInMs)
|
||||
.isEqualTo(Math.round(entry.mBackgroundUsageTimeInMs * ratio));
|
||||
assertThat(resultEntry.mConsumePower)
|
||||
.isEqualTo(entry.mConsumePower * ratio);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexedUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
|
||||
final long[] batteryHistoryKeys = new long[]{101L, 102L, 103L};
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
|
||||
final BatteryHistEntry fakeEntry = createBatteryHistEntry(
|
||||
ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", 0, 0L, 0L, 0L);
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[0]), entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[1]), entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
final BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package3", "label3", 500, 5L, 3600000L, 7200000L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(Long.valueOf(batteryHistoryKeys[2]), entryMap);
|
||||
when(mPowerUsageFeatureProvider.getHideBackgroundUsageTimeSet(mContext))
|
||||
.thenReturn(new HashSet(Arrays.asList((CharSequence) "package3")));
|
||||
|
||||
final Map<Integer, List<BatteryDiffEntry>> purgedResultMap =
|
||||
ConvertUtils.getIndexedUsageMap(
|
||||
mContext, /*timeSlotSize=*/ 1, batteryHistoryKeys, batteryHistoryMap,
|
||||
/*purgeLowPercentageAndFakeData=*/ true);
|
||||
|
||||
final BatteryDiffEntry resultEntry = purgedResultMap.get(0).get(0);
|
||||
assertThat(resultEntry.mBackgroundUsageTimeInMs).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getLocale_nullContext_returnDefaultLocale() {
|
||||
assertThat(ConvertUtils.getLocale(/*context=*/ null))
|
||||
@@ -434,113 +251,4 @@ public final class ConvertUtilsTest {
|
||||
mContext.getResources().getConfiguration().setLocales(new LocaleList());
|
||||
assertThat(ConvertUtils.getLocale(mContext)).isEqualTo(Locale.getDefault());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveMultiUsersData_replaceOtherUsersItemWithExpectedEntry() {
|
||||
final int currentUserId = mContext.getUserId();
|
||||
final Map<Integer, List<BatteryDiffEntry>> entryMap = new HashMap<>();
|
||||
// Without other users time slot.
|
||||
entryMap.put(0, Arrays.asList(
|
||||
createBatteryDiffEntry(
|
||||
currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*consumePercentage=*/ 50)));
|
||||
// With other users time slot.
|
||||
final List<BatteryDiffEntry> withOtherUsersList = new ArrayList<>();
|
||||
entryMap.put(1, withOtherUsersList);
|
||||
withOtherUsersList.add(
|
||||
createBatteryDiffEntry(
|
||||
currentUserId + 1,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
|
||||
/*consumePercentage=*/ 20));
|
||||
withOtherUsersList.add(
|
||||
createBatteryDiffEntry(
|
||||
currentUserId + 2,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*consumePercentage=*/ 30));
|
||||
withOtherUsersList.add(
|
||||
createBatteryDiffEntry(
|
||||
currentUserId + 3,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*consumePercentage=*/ 40));
|
||||
|
||||
ConvertUtils.resolveMultiUsersData(mContext, entryMap);
|
||||
|
||||
assertThat(entryMap.get(0).get(0).getPercentOfTotal()).isEqualTo(50);
|
||||
// Asserts with other users items.
|
||||
final List<BatteryDiffEntry> entryList = entryMap.get(1);
|
||||
assertThat(entryList).hasSize(2);
|
||||
assertBatteryDiffEntry(
|
||||
entryList.get(0),
|
||||
currentUserId + 1,
|
||||
/*uid=*/ 0,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
|
||||
/*consumePercentage=*/ 20);
|
||||
assertBatteryDiffEntry(
|
||||
entryList.get(1),
|
||||
BatteryUtils.UID_OTHER_USERS,
|
||||
BatteryUtils.UID_OTHER_USERS,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*consumePercentage=*/ 70);
|
||||
}
|
||||
|
||||
private BatteryDiffEntry createBatteryDiffEntry(
|
||||
long userId, int counsumerType, double consumePercentage) {
|
||||
final ContentValues values = new ContentValues();
|
||||
values.put(BatteryHistEntry.KEY_USER_ID, userId);
|
||||
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, counsumerType);
|
||||
final BatteryDiffEntry batteryDiffEntry =
|
||||
new BatteryDiffEntry(
|
||||
mContext,
|
||||
/*foregroundUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0,
|
||||
/*consumePower=*/ consumePercentage,
|
||||
new BatteryHistEntry(values));
|
||||
batteryDiffEntry.setTotalConsumePower(100f);
|
||||
return batteryDiffEntry;
|
||||
}
|
||||
|
||||
private static BatteryHistEntry createBatteryHistEntry(
|
||||
String packageName, String appLabel, double consumePower,
|
||||
long uid, long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
// Only insert required fields.
|
||||
final BatteryInformation batteryInformation =
|
||||
BatteryInformation
|
||||
.newBuilder()
|
||||
.setAppLabel(appLabel)
|
||||
.setConsumePower(consumePower)
|
||||
.setForegroundUsageTimeInMs(foregroundUsageTimeInMs)
|
||||
.setBackgroundUsageTimeInMs(backgroundUsageTimeInMs)
|
||||
.build();
|
||||
final ContentValues values = new ContentValues();
|
||||
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, packageName);
|
||||
values.put(BatteryHistEntry.KEY_UID, Long.valueOf(uid));
|
||||
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
|
||||
Integer.valueOf(ConvertUtils.CONSUMER_TYPE_UID_BATTERY));
|
||||
values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
|
||||
ConvertUtils.convertBatteryInformationToString(batteryInformation));
|
||||
return new BatteryHistEntry(values);
|
||||
}
|
||||
|
||||
private static void assertBatteryDiffEntry(
|
||||
BatteryDiffEntry entry, long userId, long uid, int counsumerType,
|
||||
double consumePercentage) {
|
||||
assertThat(entry.mBatteryHistEntry.mUid).isEqualTo(uid);
|
||||
assertThat(entry.mBatteryHistEntry.mUserId).isEqualTo(userId);
|
||||
assertThat(entry.mBatteryHistEntry.mConsumerType).isEqualTo(counsumerType);
|
||||
assertThat(entry.getPercentOfTotal()).isEqualTo(consumePercentage);
|
||||
}
|
||||
|
||||
private static void assertBatteryDiffEntry(
|
||||
BatteryDiffEntry entry, int percentOfTotal,
|
||||
long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
assertThat((int) entry.getPercentOfTotal()).isEqualTo(percentOfTotal);
|
||||
assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
|
||||
assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
|
||||
}
|
||||
|
||||
private static Long generateTimestamp(int index) {
|
||||
// "2021-04-23 07:00:00 UTC" + index hours
|
||||
return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
|
||||
}
|
||||
}
|
||||
|
@@ -532,15 +532,21 @@ public class DataProcessorTest {
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
|
||||
final int currentUserId = mContext.getUserId();
|
||||
final BatteryHistEntry fakeEntry = createBatteryHistEntry(
|
||||
ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0, /*uid=*/ 0L,
|
||||
currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*foregroundUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*foregroundUsageTimeInMs=*/ 0L, /*foregroundServiceUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 5.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 5.0,
|
||||
/*foregroundUsageConsumePower=*/ 2, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 3, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
|
||||
@@ -551,47 +557,68 @@ public class DataProcessorTest {
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 20.0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 20.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 15L,
|
||||
25L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 15L, /*backgroundUsageTimeInMs=*/ 25L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
|
||||
// Adds the index = 3 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 40.0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 40.0,
|
||||
/*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
|
||||
/*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 25L,
|
||||
/*backgroundUsageTimeInMs=*/ 35L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 25L, /*backgroundUsageTimeInMs=*/ 35L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 10.0, /*uid=*/ 3L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 4, /*foregroundServiceUsageConsumePower=*/ 2,
|
||||
/*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
|
||||
/*uid=*/ 3L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*foregroundUsageTimeInMs=*/ 40L,
|
||||
/*backgroundUsageTimeInMs=*/ 50L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 40L, /*backgroundUsageTimeInMs=*/ 50L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package3", "label3", /*consumePower=*/ 15.0, /*uid=*/ 4L, currentUserId,
|
||||
"package3", "label3", /*consumePower=*/ 15.0,
|
||||
/*foregroundUsageConsumePower=*/ 6, /*foregroundServiceUsageConsumePower=*/ 3,
|
||||
/*backgroundUsageConsumePower=*/ 3, /*cachedUsageConsumePower=*/ 3,
|
||||
/*uid=*/ 4L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 5L,
|
||||
/*backgroundUsageTimeInMs=*/ 5L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 5L, /*backgroundUsageTimeInMs=*/ 5L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[3], entryMap);
|
||||
// Adds the index = 4 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 40.0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 40.0,
|
||||
/*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9,
|
||||
/*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
|
||||
/*backgroundUsageTimeInMs=*/ 40L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 30L, /*backgroundUsageTimeInMs=*/ 40L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 20.0, /*uid=*/ 3L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 20.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*uid=*/ 3L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*foregroundUsageTimeInMs=*/ 50L,
|
||||
/*backgroundUsageTimeInMs=*/ 60L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 50L, /*backgroundUsageTimeInMs=*/ 60L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package3", "label3", /*consumePower=*/ 40.0, /*uid=*/ 4L, currentUserId,
|
||||
"package3", "label3", /*consumePower=*/ 40.0,
|
||||
/*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
|
||||
/*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
|
||||
/*uid=*/ 4L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 5L,
|
||||
/*backgroundUsageTimeInMs=*/ 5L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 5L, /*backgroundUsageTimeInMs=*/ 5L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entryMap.put(fakeEntry.getKey(), fakeEntry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[4], entryMap);
|
||||
@@ -619,33 +646,54 @@ public class DataProcessorTest {
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0,
|
||||
/*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40);
|
||||
/*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9,
|
||||
/*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8,
|
||||
/*foregroundUsageTimeInMs=*/ 30, /*foregroundServiceUsageTimeInMs=*/ 30,
|
||||
/*backgroundUsageTimeInMs=*/ 40);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 4L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0,
|
||||
/*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5);
|
||||
/*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
|
||||
/*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
|
||||
/*foregroundUsageTimeInMs=*/ 5, /*foregroundServiceUsageTimeInMs=*/ 5,
|
||||
/*backgroundUsageTimeInMs=*/ 5);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 20.0,
|
||||
/*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60);
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 50, /*foregroundServiceUsageTimeInMs=*/ 50,
|
||||
/*backgroundUsageTimeInMs=*/ 60);
|
||||
resultDiffData = resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
|
||||
/*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 25);
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 15, /*foregroundServiceUsageTimeInMs=*/ 15,
|
||||
/*backgroundUsageTimeInMs=*/ 25);
|
||||
resultDiffData = resultMap.get(1).get(DataProcessor.SELECTED_INDEX_ALL);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 4L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
|
||||
/*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5);
|
||||
/*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
|
||||
/*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
|
||||
/*foregroundUsageTimeInMs=*/ 5, /*foregroundServiceUsageTimeInMs=*/ 5,
|
||||
/*backgroundUsageTimeInMs=*/ 5);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 2L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
|
||||
/*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 15);
|
||||
/*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 4,
|
||||
/*backgroundUsageConsumePower=*/ 4, /*cachedUsageConsumePower=*/ 3,
|
||||
/*foregroundUsageTimeInMs=*/ 15, /*foregroundServiceUsageTimeInMs=*/ 15,
|
||||
/*backgroundUsageTimeInMs=*/ 15);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 25.0,
|
||||
/*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60);
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 50, /*foregroundServiceUsageTimeInMs=*/ 50,
|
||||
/*backgroundUsageTimeInMs=*/ 60);
|
||||
verify(mMetricsFeatureProvider)
|
||||
.action(mContext.getApplicationContext(),
|
||||
SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
|
||||
@@ -668,55 +716,82 @@ public class DataProcessorTest {
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 5.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 5.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 10.0, /*uid=*/ 2L, currentUserId + 1,
|
||||
"package1", "label1", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 7, /*foregroundServiceUsageConsumePower=*/ 1,
|
||||
/*backgroundUsageConsumePower=*/ 1, /*cachedUsageConsumePower=*/ 1,
|
||||
/*uid=*/ 2L, currentUserId + 1,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 5.0, /*uid=*/ 3L, currentUserId + 2,
|
||||
"package2", "label2", /*consumePower=*/ 5.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 3L, currentUserId + 2,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
|
||||
/*backgroundUsageTimeInMs=*/ 30L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 20L, /*backgroundUsageTimeInMs=*/ 30L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 15.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 15.0,
|
||||
/*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 2,
|
||||
/*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
|
||||
/*backgroundUsageTimeInMs=*/ 30L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 20L, /*backgroundUsageTimeInMs=*/ 30L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 30.0, /*uid=*/ 2L, currentUserId + 1,
|
||||
"package1", "label1", /*consumePower=*/ 30.0,
|
||||
/*foregroundUsageConsumePower=*/ 20, /*foregroundServiceUsageConsumePower=*/ 6,
|
||||
/*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
|
||||
/*uid=*/ 2L, currentUserId + 1,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 10L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 15.0, /*uid=*/ 3L, currentUserId + 2,
|
||||
"package2", "label2", /*consumePower=*/ 15.0,
|
||||
/*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 3L, currentUserId + 2,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
|
||||
/*backgroundUsageTimeInMs=*/ 30L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 30L, /*backgroundUsageTimeInMs=*/ 30L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 25.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 25.0,
|
||||
/*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
|
||||
/*backgroundUsageTimeInMs=*/ 30L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 25L, /*backgroundUsageTimeInMs=*/ 30L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 50.0, /*uid=*/ 2L, currentUserId + 1,
|
||||
"package1", "label1", /*consumePower=*/ 50.0,
|
||||
/*foregroundUsageConsumePower=*/ 20, /*foregroundServiceUsageConsumePower=*/ 10,
|
||||
/*backgroundUsageConsumePower=*/ 10, /*cachedUsageConsumePower=*/ 10,
|
||||
/*uid=*/ 2L, currentUserId + 1,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 25L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 25.0, /*uid=*/ 3L, currentUserId + 2,
|
||||
"package2", "label2", /*consumePower=*/ 25.0,
|
||||
/*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 10,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 3L, currentUserId + 2,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
|
||||
/*backgroundUsageTimeInMs=*/ 30L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 35L, /*backgroundUsageTimeInMs=*/ 30L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
|
||||
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
|
||||
@@ -737,11 +812,17 @@ public class DataProcessorTest {
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 1L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10);
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*foregroundServiceUsageTimeInMs=*/ 15,
|
||||
/*backgroundUsageTimeInMs=*/ 10);
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getSystemDiffEntryList().get(0), BatteryUtils.UID_OTHER_USERS,
|
||||
/*uid=*/ BatteryUtils.UID_OTHER_USERS, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
|
||||
/*consumePercentage=*/ 75.0, /*foregroundUsageTimeInMs=*/ 0,
|
||||
/*consumePercentage=*/ 75.0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*foregroundUsageTimeInMs=*/ 0, /*foregroundServiceUsageTimeInMs=*/ 0,
|
||||
/*backgroundUsageTimeInMs=*/ 0);
|
||||
assertThat(resultMap.get(0).get(0)).isNotNull();
|
||||
assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull();
|
||||
@@ -767,24 +848,34 @@ public class DataProcessorTest {
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 500.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 500.0,
|
||||
/*foregroundUsageConsumePower=*/ 200, /*foregroundServiceUsageConsumePower=*/ 100,
|
||||
/*backgroundUsageConsumePower=*/ 100, /*cachedUsageConsumePower=*/ 100,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 3600000L,
|
||||
/*foregroundServiceUsageTimeInMs=*/ 1800000L,
|
||||
/*backgroundUsageTimeInMs=*/ 7200000L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
|
||||
@@ -808,10 +899,20 @@ public class DataProcessorTest {
|
||||
final BatteryDiffEntry resultEntry = resultDiffData.getAppDiffEntryList().get(0);
|
||||
assertThat(resultEntry.mForegroundUsageTimeInMs)
|
||||
.isEqualTo(Math.round(entry.mForegroundUsageTimeInMs * ratio));
|
||||
assertThat(resultEntry.mForegroundServiceUsageTimeInMs)
|
||||
.isEqualTo(Math.round(entry.mForegroundServiceUsageTimeInMs * ratio));
|
||||
assertThat(resultEntry.mBackgroundUsageTimeInMs)
|
||||
.isEqualTo(Math.round(entry.mBackgroundUsageTimeInMs * ratio));
|
||||
assertThat(resultEntry.mConsumePower)
|
||||
.isEqualTo(entry.mConsumePower * ratio);
|
||||
assertThat(resultEntry.mForegroundUsageConsumePower)
|
||||
.isEqualTo(entry.mForegroundUsageConsumePower * ratio);
|
||||
assertThat(resultEntry.mForegroundServiceUsageConsumePower)
|
||||
.isEqualTo(entry.mForegroundServiceUsageConsumePower * ratio);
|
||||
assertThat(resultEntry.mBackgroundUsageConsumePower)
|
||||
.isEqualTo(entry.mBackgroundUsageConsumePower * ratio);
|
||||
assertThat(resultEntry.mCachedUsageConsumePower)
|
||||
.isEqualTo(entry.mCachedUsageConsumePower * ratio);
|
||||
assertThat(resultMap.get(0).get(0)).isNotNull();
|
||||
assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull();
|
||||
verify(mMetricsFeatureProvider)
|
||||
@@ -836,40 +937,58 @@ public class DataProcessorTest {
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 10.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 15L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 10.0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 15L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
|
||||
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
|
||||
@@ -892,7 +1011,10 @@ public class DataProcessorTest {
|
||||
assertBatteryDiffEntry(
|
||||
resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20);
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*foregroundServiceUsageTimeInMs=*/ 15,
|
||||
/*backgroundUsageTimeInMs=*/ 20);
|
||||
verify(mMetricsFeatureProvider)
|
||||
.action(mContext.getApplicationContext(),
|
||||
SettingsEnums.ACTION_BATTERY_USAGE_SHOWN_APP_COUNT,
|
||||
@@ -915,40 +1037,58 @@ public class DataProcessorTest {
|
||||
// Adds the index = 0 data.
|
||||
Map<String, BatteryHistEntry> entryMap = new HashMap<>();
|
||||
BatteryHistEntry entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
|
||||
// Adds the index = 1 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
|
||||
/*backgroundUsageTimeInMs=*/ 0L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
|
||||
// Adds the index = 2 data.
|
||||
entryMap = new HashMap<>();
|
||||
entry = createBatteryHistEntry(
|
||||
"package1", "label1", /*consumePower=*/ 10.0, /*uid=*/ 1L, currentUserId,
|
||||
"package1", "label1", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*uid=*/ 1L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 15L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
entry = createBatteryHistEntry(
|
||||
"package2", "label2", /*consumePower=*/ 10.0, /*uid=*/ 2L, currentUserId,
|
||||
"package2", "label2", /*consumePower=*/ 10.0,
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
|
||||
/*uid=*/ 2L, currentUserId,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
|
||||
/*backgroundUsageTimeInMs=*/ 20L);
|
||||
/*foregroundServiceUsageTimeInMs=*/ 15L, /*backgroundUsageTimeInMs=*/ 20L);
|
||||
entryMap.put(entry.getKey(), entry);
|
||||
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
|
||||
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
|
||||
@@ -996,22 +1136,42 @@ public class DataProcessorTest {
|
||||
batteryEntryList.add(mMockBatteryEntry3);
|
||||
batteryEntryList.add(mMockBatteryEntry4);
|
||||
doReturn(0.0).when(mMockBatteryEntry1).getConsumedPower();
|
||||
doReturn(0.0).when(mMockBatteryEntry1).getConsumedPowerInForeground();
|
||||
doReturn(0.0).when(mMockBatteryEntry1).getConsumedPowerInForegroundService();
|
||||
doReturn(0.0).when(mMockBatteryEntry1).getConsumedPowerInBackground();
|
||||
doReturn(0.0).when(mMockBatteryEntry1).getConsumedPowerInCached();
|
||||
doReturn(30L).when(mMockBatteryEntry1).getTimeInForegroundMs();
|
||||
doReturn(20L).when(mMockBatteryEntry1).getTimeInForegroundServiceMs();
|
||||
doReturn(40L).when(mMockBatteryEntry1).getTimeInBackgroundMs();
|
||||
doReturn(1).when(mMockBatteryEntry1).getUid();
|
||||
doReturn(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).when(mMockBatteryEntry1).getConsumerType();
|
||||
doReturn(0.5).when(mMockBatteryEntry2).getConsumedPower();
|
||||
doReturn(0.5).when(mMockBatteryEntry2).getConsumedPowerInForeground();
|
||||
doReturn(0.0).when(mMockBatteryEntry2).getConsumedPowerInForegroundService();
|
||||
doReturn(0.0).when(mMockBatteryEntry2).getConsumedPowerInBackground();
|
||||
doReturn(0.0).when(mMockBatteryEntry2).getConsumedPowerInCached();
|
||||
doReturn(20L).when(mMockBatteryEntry2).getTimeInForegroundMs();
|
||||
doReturn(30L).when(mMockBatteryEntry2).getTimeInForegroundServiceMs();
|
||||
doReturn(20L).when(mMockBatteryEntry2).getTimeInBackgroundMs();
|
||||
doReturn(2).when(mMockBatteryEntry2).getUid();
|
||||
doReturn(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).when(mMockBatteryEntry2).getConsumerType();
|
||||
doReturn(0.0).when(mMockBatteryEntry3).getConsumedPower();
|
||||
doReturn(0.0).when(mMockBatteryEntry3).getConsumedPowerInForeground();
|
||||
doReturn(0.0).when(mMockBatteryEntry3).getConsumedPowerInForegroundService();
|
||||
doReturn(0.0).when(mMockBatteryEntry3).getConsumedPowerInBackground();
|
||||
doReturn(0.0).when(mMockBatteryEntry3).getConsumedPowerInCached();
|
||||
doReturn(0L).when(mMockBatteryEntry3).getTimeInForegroundMs();
|
||||
doReturn(0L).when(mMockBatteryEntry3).getTimeInForegroundServiceMs();
|
||||
doReturn(0L).when(mMockBatteryEntry3).getTimeInBackgroundMs();
|
||||
doReturn(3).when(mMockBatteryEntry3).getUid();
|
||||
doReturn(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).when(mMockBatteryEntry3).getConsumerType();
|
||||
doReturn(1.5).when(mMockBatteryEntry4).getConsumedPower();
|
||||
doReturn(0.9).when(mMockBatteryEntry4).getConsumedPowerInForeground();
|
||||
doReturn(0.2).when(mMockBatteryEntry4).getConsumedPowerInForegroundService();
|
||||
doReturn(0.3).when(mMockBatteryEntry4).getConsumedPowerInBackground();
|
||||
doReturn(0.1).when(mMockBatteryEntry4).getConsumedPowerInCached();
|
||||
doReturn(10L).when(mMockBatteryEntry4).getTimeInForegroundMs();
|
||||
doReturn(15L).when(mMockBatteryEntry4).getTimeInForegroundServiceMs();
|
||||
doReturn(10L).when(mMockBatteryEntry4).getTimeInBackgroundMs();
|
||||
doReturn(4).when(mMockBatteryEntry4).getUid();
|
||||
doReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY)
|
||||
@@ -1025,15 +1185,24 @@ public class DataProcessorTest {
|
||||
assertBatteryDiffEntry(
|
||||
batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
|
||||
/*foregroundUsageTimeInMs=*/ 20, /*backgroundUsageTimeInMs=*/ 20);
|
||||
/*foregroundUsageConsumePower=*/ 0.5, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*foregroundUsageTimeInMs=*/ 20, /*foregroundServiceUsageTimeInMs=*/ 30,
|
||||
/*backgroundUsageTimeInMs=*/ 20);
|
||||
assertBatteryDiffEntry(
|
||||
batteryDiffData.getAppDiffEntryList().get(1), 0, /*uid=*/ 1L,
|
||||
ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 0.0,
|
||||
/*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40);
|
||||
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
|
||||
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
|
||||
/*foregroundUsageTimeInMs=*/ 30, /*foregroundServiceUsageTimeInMs=*/ 20,
|
||||
/*backgroundUsageTimeInMs=*/ 40);
|
||||
assertBatteryDiffEntry(
|
||||
batteryDiffData.getSystemDiffEntryList().get(0), 0, /*uid=*/ 4L,
|
||||
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 75.0,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10);
|
||||
/*foregroundUsageConsumePower=*/ 0.9, /*foregroundServiceUsageConsumePower=*/ 0.2,
|
||||
/*backgroundUsageConsumePower=*/ 0.3, /*cachedUsageConsumePower=*/ 0.1,
|
||||
/*foregroundUsageTimeInMs=*/ 10, /*foregroundServiceUsageTimeInMs=*/ 15,
|
||||
/*backgroundUsageTimeInMs=*/ 10);
|
||||
}
|
||||
|
||||
private static Map<Long, Map<String, BatteryHistEntry>> createHistoryMap(
|
||||
@@ -1068,15 +1237,24 @@ public class DataProcessorTest {
|
||||
|
||||
private static BatteryHistEntry createBatteryHistEntry(
|
||||
final String packageName, final String appLabel, final double consumePower,
|
||||
final double foregroundUsageConsumePower,
|
||||
final double foregroundServiceUsageConsumePower,
|
||||
final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
|
||||
final long uid, final long userId, final int consumerType,
|
||||
final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs) {
|
||||
final long foregroundUsageTimeInMs, final long foregroundServiceUsageTimeInMs,
|
||||
final long backgroundUsageTimeInMs) {
|
||||
// Only insert required fields.
|
||||
final BatteryInformation batteryInformation =
|
||||
BatteryInformation
|
||||
.newBuilder()
|
||||
.setAppLabel(appLabel)
|
||||
.setConsumePower(consumePower)
|
||||
.setForegroundUsageConsumePower(foregroundUsageConsumePower)
|
||||
.setForegroundServiceUsageConsumePower(foregroundServiceUsageConsumePower)
|
||||
.setBackgroundUsageConsumePower(backgroundUsageConsumePower)
|
||||
.setCachedUsageConsumePower(cachedUsageConsumePower)
|
||||
.setForegroundUsageTimeInMs(foregroundUsageTimeInMs)
|
||||
.setForegroundServiceUsageTimeInMs(foregroundServiceUsageTimeInMs)
|
||||
.setBackgroundUsageTimeInMs(backgroundUsageTimeInMs)
|
||||
.build();
|
||||
final ContentValues values = new ContentValues();
|
||||
@@ -1152,12 +1330,23 @@ public class DataProcessorTest {
|
||||
private static void assertBatteryDiffEntry(
|
||||
final BatteryDiffEntry entry, final long userId, final long uid,
|
||||
final int consumerType, final double consumePercentage,
|
||||
final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs) {
|
||||
final double foregroundUsageConsumePower,
|
||||
final double foregroundServiceUsageConsumePower,
|
||||
final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
|
||||
final long foregroundUsageTimeInMs, final long foregroundServiceUsageTimeInMs,
|
||||
final long backgroundUsageTimeInMs) {
|
||||
assertThat(entry.mBatteryHistEntry.mUserId).isEqualTo(userId);
|
||||
assertThat(entry.mBatteryHistEntry.mUid).isEqualTo(uid);
|
||||
assertThat(entry.mBatteryHistEntry.mConsumerType).isEqualTo(consumerType);
|
||||
assertThat(entry.getPercentOfTotal()).isEqualTo(consumePercentage);
|
||||
assertThat(entry.mForegroundUsageConsumePower).isEqualTo(foregroundUsageConsumePower);
|
||||
assertThat(entry.mForegroundServiceUsageConsumePower)
|
||||
.isEqualTo(foregroundServiceUsageConsumePower);
|
||||
assertThat(entry.mBackgroundUsageConsumePower).isEqualTo(backgroundUsageConsumePower);
|
||||
assertThat(entry.mCachedUsageConsumePower).isEqualTo(cachedUsageConsumePower);
|
||||
assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
|
||||
assertThat(entry.mForegroundServiceUsageTimeInMs)
|
||||
.isEqualTo(foregroundServiceUsageTimeInMs);
|
||||
assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
|
||||
}
|
||||
}
|
||||
|
@@ -56,9 +56,14 @@ public final class BatteryStateTest {
|
||||
.setAppLabel("Settings")
|
||||
.setTotalPower(100)
|
||||
.setConsumePower(3)
|
||||
.setForegroundUsageConsumePower(0)
|
||||
.setForegroundServiceUsageConsumePower(1)
|
||||
.setBackgroundUsageConsumePower(2)
|
||||
.setCachedUsageConsumePower(3)
|
||||
.setPercentOfTotal(10)
|
||||
.setDrainType(1)
|
||||
.setForegroundUsageTimeInMs(60000)
|
||||
.setForegroundServiceUsageTimeInMs(30000)
|
||||
.setBackgroundUsageTimeInMs(10000)
|
||||
.build();
|
||||
}
|
||||
|
Reference in New Issue
Block a user