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

Commit 27f1e8e1 authored by android-build-team Robot's avatar android-build-team Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't check battery usage in excessive bg anomaly" into pi-dev

parents 9a1d318b 06efc034
Loading
Loading
Loading
Loading
+0 −31
Original line number Diff line number Diff line
@@ -511,37 +511,6 @@ public class BatteryUtils {
        return false;
    }

    /**
     * Check if the app represented by {@code uid} has battery usage more than {@code threshold}
     *
     * @param batteryStatsHelper used to check the battery usage
     * @param userManager        used to init the {@code batteryStatsHelper}
     * @param uid                represent the app
     * @param threshold          battery percentage threshold(e.g. 10 means 10% battery usage )
     * @return {@code true} if battery drain is more than the threshold
     */
    public boolean isAppHeavilyUsed(BatteryStatsHelper batteryStatsHelper, UserManager userManager,
            int uid, int threshold) {
        initBatteryStatsHelper(batteryStatsHelper, null /* bundle */, userManager);
        final int dischargeAmount = batteryStatsHelper.getStats().getDischargeAmount(
                BatteryStats.STATS_SINCE_CHARGED);
        List<BatterySipper> batterySippers = batteryStatsHelper.getUsageList();
        final double hiddenAmount = removeHiddenBatterySippers(batterySippers);

        for (int i = 0, size = batterySippers.size(); i < size; i++) {
            final BatterySipper batterySipper = batterySippers.get(i);
            if (batterySipper.getUid() == uid) {
                final int percent = (int) calculateBatteryPercent(
                        batterySipper.totalPowerMah, batteryStatsHelper.getTotalPower(),
                        hiddenAmount,
                        dischargeAmount);
                return percent >= threshold;
            }
        }

        return false;
    }

    /**
     * Return {@code true} if we should hide anomaly app represented by {@code uid}
     */
+1 −4
Original line number Diff line number Diff line
@@ -143,7 +143,6 @@ public class AnomalyDetectionJobService extends JobService {
                StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES);
        final AnomalyInfo anomalyInfo = new AnomalyInfo(
                !ArrayUtils.isEmpty(cookies) ? cookies.get(0) : "");
        final PackageManager packageManager = context.getPackageManager();
        Log.i(TAG, "Extra stats value: " + intentDimsValue.toString());

        try {
@@ -158,9 +157,7 @@ public class AnomalyDetectionJobService extends JobService {

            final boolean anomalyDetected;
            if (isExcessiveBackgroundAnomaly(anomalyInfo)) {
                anomalyDetected = batteryUtils.isPreOApp(packageName)
                        && batteryUtils.isAppHeavilyUsed(batteryStatsHelper, userManager, uid,
                        policy.excessiveBgDrainPercentage);
                anomalyDetected = batteryUtils.isPreOApp(packageName);
            } else {
                anomalyDetected = true;
            }
+0 −12
Original line number Diff line number Diff line
@@ -580,18 +580,6 @@ public class BatteryUtilsTest {
        assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isFalse();
    }

    @Test
    public void testIsAppHeavilyUsed_usageMoreThanThreshold_returnTrue() {
        assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID,
                10 /* threshold */ )).isTrue();
    }

    @Test
    public void testIsAppHeavilyUsed_usageLessThanThreshold_returnFalse() {
        assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID,
                DISCHARGE_AMOUNT /* threshold */ )).isFalse();
    }

    @Test
    public void testShouldHideAnomaly_systemAppWithLauncher_returnTrue() {
        final List<ResolveInfo> resolveInfos = new ArrayList<>();