Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 679ed4c3 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

Merge "Make percentage add up to dischargeAmount."

parents 66f978e9 da8d9fc3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);
+9 −4
Original line number Diff line number Diff line
@@ -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);