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

Commit e494a3e5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Distribute the misc among all the apps" into oc-dev

parents d0ea1386 a245188a
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -128,9 +128,8 @@ public class BatteryUtils {
            final BatterySipper sipper = sippers.get(i);
            if (shouldHideSipper(sipper)) {
                sippers.remove(i);
                if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED
                        && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED) {
                    // Don't add it if it is overcounted or unaccounted
                if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED) {
                    // Don't add it if it is overcounted
                    totalPowerMah += sipper.totalPowerMah;
                }
            }
+19 −3
Original line number Diff line number Diff line
@@ -69,8 +69,7 @@ public class PowerUsageAdvanced extends PowerUsageBase {
            UsageType.UNACCOUNTED,
            UsageType.OVERCOUNTED};

    @VisibleForTesting
    BatteryUtils mBatteryUtils;
    private BatteryUtils mBatteryUtils;
    private BatteryHistoryPreference mHistPref;
    private PreferenceGroup mUsageListGroup;
    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@@ -258,8 +257,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
        final List<PowerUsageData> batteryDataList = new ArrayList<>(batteryDataMap.values());
        final int dischargeAmount = statusHelper.getStats().getDischargeAmount(STATUS_TYPE);
        final double totalPower = statusHelper.getTotalPower();
        final double hiddenPower = calculateHiddenPower(batteryDataList);
        for (final PowerUsageData usageData : batteryDataList) {
            usageData.percentage = (usageData.totalPowerMah / totalPower) * dischargeAmount;
            usageData.percentage = mBatteryUtils.calculateBatteryPercent(usageData.totalPowerMah,
                    totalPower, hiddenPower, dischargeAmount);
            updateUsageDataSummary(usageData, totalPower, dischargeAmount);
        }

@@ -269,6 +270,17 @@ public class PowerUsageAdvanced extends PowerUsageBase {
        return batteryDataList;
    }

    @VisibleForTesting
    double calculateHiddenPower(List<PowerUsageData> batteryDataList) {
        for (final PowerUsageData usageData : batteryDataList) {
            if (usageData.usageType == UsageType.UNACCOUNTED) {
                return usageData.totalPowerMah;
            }
        }

        return 0;
    }

    @VisibleForTesting
    void updateUsageDataSummary(PowerUsageData usageData, double totalPower, int dischargeAmount) {
        if (shouldHideSummary(usageData)) {
@@ -322,6 +334,10 @@ public class PowerUsageAdvanced extends PowerUsageBase {
    void setUserManager(UserManager userManager) {
        mUserManager = userManager;
    }
    @VisibleForTesting
    void setBatteryUtils(BatteryUtils batteryUtils) {
        mBatteryUtils = batteryUtils;
    }

    /**
     * Class that contains data used in {@link PowerGaugePreference}.
+9 −1
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ public class BatteryUtilsTest {
    private static final double BATTERY_SCREEN_USAGE = 300;
    private static final double BATTERY_SYSTEM_USAGE = 600;
    private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
    private static final double BATTERY_UNACCOUNTED_USAGE = 700;
    private static final double TOTAL_BATTERY_USAGE = 1000;
    private static final double HIDDEN_USAGE = 200;
    private static final int DISCHARGE_AMOUNT = 80;
@@ -85,6 +86,8 @@ public class BatteryUtilsTest {
    @Mock
    private BatterySipper mOvercountedBatterySipper;
    @Mock
    private BatterySipper mUnaccountedBatterySipper;
    @Mock
    private BatterySipper mSystemBatterySipper;
    @Mock
    private BatterySipper mCellBatterySipper;
@@ -126,6 +129,9 @@ public class BatteryUtilsTest {
        mOvercountedBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED;
        mOvercountedBatterySipper.totalPowerMah = BATTERY_OVERACCOUNTED_USAGE;

        mUnaccountedBatterySipper.drainType = BatterySipper.DrainType.UNACCOUNTED;
        mUnaccountedBatterySipper.totalPowerMah = BATTERY_UNACCOUNTED_USAGE;

        mBatteryUtils = BatteryUtils.getInstance(RuntimeEnvironment.application);
        mBatteryUtils.mPowerUsageFeatureProvider = mProvider;

@@ -171,12 +177,14 @@ public class BatteryUtilsTest {
        sippers.add(mScreenBatterySipper);
        sippers.add(mSystemBatterySipper);
        sippers.add(mOvercountedBatterySipper);
        sippers.add(mUnaccountedBatterySipper);
        when(mProvider.isTypeSystem(mSystemBatterySipper))
                .thenReturn(true);

        final double totalUsage = mBatteryUtils.removeHiddenBatterySippers(sippers);
        assertThat(sippers).containsExactly(mNormalBatterySipper);
        assertThat(totalUsage).isWithin(PRECISION).of(BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE);
        assertThat(totalUsage).isWithin(PRECISION).of(
                BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE + BATTERY_UNACCOUNTED_USAGE);
    }

    @Test
+13 −1
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ public class PowerUsageAdvancedTest {
        mPowerUsageAdvanced.setPackageManager(mPackageManager);
        mPowerUsageAdvanced.setPowerUsageFeatureProvider(mPowerUsageFeatureProvider);
        mPowerUsageAdvanced.setUserManager(mUserManager);
        mPowerUsageAdvanced.mBatteryUtils = spy(new BatteryUtils(mShadowContext));
        mPowerUsageAdvanced.setBatteryUtils(BatteryUtils.getInstance(mShadowContext));

        mPowerUsageData = new PowerUsageData(UsageType.APP);
        mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
@@ -299,4 +299,16 @@ public class PowerUsageAdvancedTest {
        assertThat(mPowerUsageAdvanced.shouldShowBatterySipper(mNormalBatterySipper)).isTrue();
    }

    @Test
    public void testCalculateHiddenPower_returnCorrectPower() {
        List<PowerUsageData> powerUsageDataList = new ArrayList<>();
        final double unaccountedPower = 100;
        final double normalPower = 150;
        powerUsageDataList.add(new PowerUsageData(UsageType.UNACCOUNTED, unaccountedPower));
        powerUsageDataList.add(new PowerUsageData(UsageType.APP, normalPower));
        powerUsageDataList.add(new PowerUsageData(UsageType.CELL, normalPower));

        assertThat(mPowerUsageAdvanced.calculateHiddenPower(powerUsageDataList)).isWithin(
                PRECISION).of(unaccountedPower);
    }
}