From 8dba5a03a12fee683782f01eede32a28ab752541 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Fri, 21 Jul 2017 12:18:33 -0700 Subject: [PATCH] Add anomaly detection method to AnomalyUtils So we could reuse it in different loaders. Bug: 63900914 Test: robotests still pass Change-Id: I038085f53b9d0a05b8c4849c7544567434885821 --- .../fuelgauge/anomaly/AnomalyLoader.java | 10 +------ .../fuelgauge/anomaly/AnomalyUtils.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java index eb125ade794..596eaf5980e 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyLoader.java @@ -98,15 +98,7 @@ public class AnomalyLoader extends AsyncLoader> { mUserManager.getUserProfiles()); } - final List 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 diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java index 8ac9e6f2983..491a3b48607 100644 --- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java +++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java @@ -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 detectAnomalies(BatteryStatsHelper batteryStatsHelper, + AnomalyDetectionPolicy policy, String targetPackageName) { + final List 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; + } + }