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

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

Merge "Add anomaly detection method to AnomalyUtils" into oc-dr1-dev

parents 262aacd3 8dba5a03
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -98,15 +98,7 @@ public class AnomalyLoader extends AsyncLoader<List<Anomaly>> {
                    mUserManager.getUserProfiles());
        }

        final List<Anomaly> anomalies = new ArrayList<>();
        for (@Anomaly.AnomalyType int type : Anomaly.ANOMALY_TYPE_LIST) {
            if (mPolicy.isAnomalyDetectorEnabled(type)) {
                anomalies.addAll(mAnomalyUtils.getAnomalyDetector(type).detectAnomalies(
                        mBatteryStatsHelper, mPackageName));
            }
        }

        return anomalies;
        return mAnomalyUtils.detectAnomalies(mBatteryStatsHelper, mPolicy, mPackageName);
    }

    @VisibleForTesting
+27 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.os.Build;
import android.support.annotation.VisibleForTesting;

import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
import com.android.settings.fuelgauge.anomaly.action.ForceStopAction;
import com.android.settings.fuelgauge.anomaly.action.LocationCheckAction;
@@ -29,6 +30,9 @@ import com.android.settings.fuelgauge.anomaly.checker.BluetoothScanAnomalyDetect
import com.android.settings.fuelgauge.anomaly.checker.WakeLockAnomalyDetector;
import com.android.settings.fuelgauge.anomaly.checker.WakeupAlarmAnomalyDetector;

import java.util.ArrayList;
import java.util.List;

/**
 * Utility class for anomaly detection
 */
@@ -91,4 +95,27 @@ public class AnomalyUtils {
                return null;
        }
    }

    /**
     * Detect whether application with {@code targetPackageName} has anomaly. When
     * {@code targetPackageName} is null, start detection among all the applications.
     *
     * @param batteryStatsHelper contains battery stats, used to detect anomaly
     * @param policy             contains configuration about anomaly check
     * @param targetPackageName  represents the app need to be detected
     * @return the list of anomalies
     */
    public List<Anomaly> detectAnomalies(BatteryStatsHelper batteryStatsHelper,
            AnomalyDetectionPolicy policy, String targetPackageName) {
        final List<Anomaly> anomalies = new ArrayList<>();
        for (@Anomaly.AnomalyType int type : Anomaly.ANOMALY_TYPE_LIST) {
            if (policy.isAnomalyDetectorEnabled(type)) {
                anomalies.addAll(getAnomalyDetector(type).detectAnomalies(
                        batteryStatsHelper, targetPackageName));
            }
        }

        return anomalies;
    }

}