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