Make percentage add up to dischargeAmount.
Refine it in PowerUsageAdvanced. Bug: 35960502 Test: RunSettingsRoboTests Change-Id: I46b06409102334e5e9eed4e540a27315a503f8b0
This commit is contained in:
@@ -15,6 +15,7 @@ package com.android.settings.fuelgauge;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.Bundle;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.support.annotation.ColorInt;
|
||||
@@ -46,6 +47,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
private static final String TAG = "AdvancedBatteryUsage";
|
||||
private static final String KEY_BATTERY_GRAPH = "battery_graph";
|
||||
private static final String KEY_BATTERY_USAGE_LIST = "battery_usage_list";
|
||||
private static final int STATUS_TYPE = BatteryStats.STATS_SINCE_CHARGED;
|
||||
|
||||
@VisibleForTesting
|
||||
final int[] mUsageTypes = {
|
||||
@@ -165,9 +167,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
|
||||
|
||||
// TODO(b/35396770): add logic to extract the summary
|
||||
final List<PowerUsageData> batteryDataList = new ArrayList<>(batteryDataMap.values());
|
||||
final int dischargeAmount = statusHelper.getStats().getDischargeAmount(STATUS_TYPE);
|
||||
final double totalPower = statusHelper.getTotalPower();
|
||||
for (final PowerUsageData usageData : batteryDataList) {
|
||||
usageData.percentage = (usageData.totalPowerMah / totalPower) * 100;
|
||||
usageData.percentage = (usageData.totalPowerMah / totalPower) * dischargeAmount;
|
||||
}
|
||||
|
||||
Collections.sort(batteryDataList);
|
||||
|
@@ -27,6 +27,7 @@ import com.android.settings.fuelgauge.PowerUsageAdvanced.PowerUsageData.UsageTyp
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.annotation.Config;
|
||||
@@ -38,6 +39,7 @@ import java.util.Set;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@@ -45,6 +47,7 @@ import static org.mockito.Mockito.when;
|
||||
public class PowerUsageAdvancedTest {
|
||||
private static final int FAKE_UID_1 = 50;
|
||||
private static final int FAKE_UID_2 = 100;
|
||||
private static final int DISCHARGE_AMOUNT = 60;
|
||||
private static final double TYPE_APP_USAGE = 80;
|
||||
private static final double TYPE_BLUETOOTH_USAGE = 50;
|
||||
private static final double TYPE_WIFI_USAGE = 0;
|
||||
@@ -53,7 +56,7 @@ public class PowerUsageAdvancedTest {
|
||||
private static final double PRECISION = 0.001;
|
||||
@Mock
|
||||
private BatterySipper mBatterySipper;
|
||||
@Mock
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
private BatteryStatsHelper mBatteryStatsHelper;
|
||||
@Mock
|
||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||
@@ -76,6 +79,8 @@ public class PowerUsageAdvancedTest {
|
||||
batterySippers.add(new BatterySipper(DrainType.WIFI, new FakeUid(FAKE_UID_1),
|
||||
TYPE_WIFI_USAGE));
|
||||
|
||||
when(mBatteryStatsHelper.getStats().getDischargeAmount(anyInt())).thenReturn(
|
||||
DISCHARGE_AMOUNT);
|
||||
when(mBatteryStatsHelper.getUsageList()).thenReturn(batterySippers);
|
||||
when(mBatteryStatsHelper.getTotalPower()).thenReturn(TOTAL_USAGE);
|
||||
mPowerUsageAdvanced.setPackageManager(mPackageManager);
|
||||
@@ -118,9 +123,9 @@ public class PowerUsageAdvancedTest {
|
||||
|
||||
@Test
|
||||
public void testParsePowerUsageData_PercentageCalculatedCorrectly() {
|
||||
final double percentApp = TYPE_APP_USAGE * 2 / TOTAL_USAGE * 100;
|
||||
final double percentWifi = TYPE_WIFI_USAGE / TOTAL_USAGE * 100;
|
||||
final double percentBluetooth = TYPE_BLUETOOTH_USAGE / TOTAL_USAGE * 100;
|
||||
final double percentApp = TYPE_APP_USAGE * 2 / TOTAL_USAGE * DISCHARGE_AMOUNT;
|
||||
final double percentWifi = TYPE_WIFI_USAGE / TOTAL_USAGE * DISCHARGE_AMOUNT;
|
||||
final double percentBluetooth = TYPE_BLUETOOTH_USAGE / TOTAL_USAGE * DISCHARGE_AMOUNT;
|
||||
|
||||
List<PowerUsageData> batteryData =
|
||||
mPowerUsageAdvanced.parsePowerUsageData(mBatteryStatsHelper);
|
||||
|
Reference in New Issue
Block a user